@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.
Files changed (46) hide show
  1. package/.umirc.ts +12 -7
  2. package/es/DisableMark/index.css +9 -0
  3. package/es/DisableMark/index.d.ts +8 -0
  4. package/es/DisableMark/index.js +9 -0
  5. package/es/Drawer/index.css +1 -0
  6. package/es/Map/AMap.d.ts +14 -1
  7. package/es/Map/BasicMap/AMapInstance.js +18 -2
  8. package/es/Map/Config/utils.js +2 -2
  9. package/es/Player/demo.js +4 -3
  10. package/es/Player/iconfont.d.ts +1 -1
  11. package/es/Player/iconfont.js +1 -1
  12. package/es/Player/live_heart.js +7 -32
  13. package/es/Player/style/iconfont.ttf +0 -0
  14. package/es/Player/style/iconfont.woff +0 -0
  15. package/es/Player/style/iconfont.woff2 +0 -0
  16. package/es/ScreenPlayer/Live.d.ts +1 -1
  17. package/es/ScreenPlayer/Live.js +13 -3
  18. package/es/ScreenPlayer/LiveTools.d.ts +3 -1
  19. package/es/ScreenPlayer/LiveTools.js +84 -47
  20. package/es/ScreenPlayer/PlayerWithExt.js +0 -3
  21. package/es/ScreenPlayer/Record.d.ts +1 -1
  22. package/es/ScreenPlayer/Record.js +55 -16
  23. package/es/ScreenPlayer/RecordTools.d.ts +7 -1
  24. package/es/ScreenPlayer/RecordTools.js +112 -46
  25. package/es/ScreenPlayer/ScreenSelect.d.ts +7 -0
  26. package/es/ScreenPlayer/ScreenSelect.js +28 -0
  27. package/es/ScreenPlayer/SegmentTimeLine.d.ts +5 -2
  28. package/es/ScreenPlayer/SegmentTimeLine.js +14 -9
  29. package/es/ScreenPlayer/TimeMode.d.ts +7 -0
  30. package/es/ScreenPlayer/TimeMode.js +23 -0
  31. package/es/ScreenPlayer/TimeSelect.d.ts +7 -0
  32. package/es/ScreenPlayer/TimeSelect.js +128 -0
  33. package/es/ScreenPlayer/TimeSlider.d.ts +1 -1
  34. package/es/ScreenPlayer/TimeSlider.js +7 -10
  35. package/es/ScreenPlayer/demo.d.ts +1 -1
  36. package/es/ScreenPlayer/demo.js +9 -4
  37. package/es/ScreenPlayer/demo2.js +1 -1
  38. package/es/ScreenPlayer/index.css +79 -4
  39. package/es/ScreenPlayer/interface.d.ts +32 -0
  40. package/es/ScreenPlayer/utils.d.ts +3 -0
  41. package/es/ScreenPlayer/utils.js +9 -0
  42. package/es/Timeout/index.d.ts +8 -9
  43. package/es/Timeout/index.js +17 -23
  44. package/es/index.d.ts +1 -0
  45. package/es/index.js +1 -0
  46. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
 
3
+ import "antd/lib/message/style";
4
+ import _message from "antd/lib/message";
3
5
  import _usePrevious from "ahooks/es/usePrevious";
4
6
 
5
7
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
@@ -32,6 +34,7 @@ import RecordTools from './RecordTools';
32
34
  import SegmentTimeLine from './SegmentTimeLine';
33
35
  import useRecordList from './useRecordList';
34
36
  import useVideoFit from './useVideoFit';
37
+ import DisableMark from '../DisableMark';
35
38
  import "./index.css";
36
39
  /**
37
40
  * @desc 录像设计的时间全部需要到毫秒
@@ -45,7 +48,9 @@ function RecordPlayer(_ref) {
45
48
  var list = _ref.list,
46
49
  children = _ref.children,
47
50
  queryRecord = _ref.queryRecord,
48
- onIndexChange = _ref.onIndexChange;
51
+ onIndexChange = _ref.onIndexChange,
52
+ onClose = _ref.onClose,
53
+ onCloseAll = _ref.onCloseAll;
49
54
 
50
55
  var _useState = useState({
51
56
  screenNum: 4,
@@ -54,7 +59,8 @@ function RecordPlayer(_ref) {
54
59
  currentTimes: [],
55
60
  loading: false,
56
61
  seekTo: 0,
57
- mergeSegments: []
62
+ mergeSegments: [],
63
+ timeMode: 24
58
64
  }),
59
65
  _useState2 = _slicedToArray(_useState, 2),
60
66
  state = _useState2[0],
@@ -199,6 +205,10 @@ function RecordPlayer(_ref) {
199
205
  obj.mode = newState.mode;
200
206
  }
201
207
 
208
+ if (newState.hasOwnProperty('timeMode')) {
209
+ obj.timeMode = newState.timeMode;
210
+ }
211
+
202
212
  setState(function (old) {
203
213
  return Object.assign(Object.assign({}, old), obj);
204
214
  });
@@ -210,7 +220,7 @@ function RecordPlayer(_ref) {
210
220
  */
211
221
 
212
222
 
213
- var onTimeChange = useCallback(function (time) {
223
+ var onTimeChange = useCallback(function (time, outTimeline) {
214
224
  return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
215
225
  var index, segments;
216
226
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -225,23 +235,34 @@ function RecordPlayer(_ref) {
225
235
  return _context.abrupt("return");
226
236
 
227
237
  case 2:
238
+ if (!(outTimeline && segmentItem.recordType === 1)) {
239
+ _context.next = 5;
240
+ break;
241
+ }
242
+
243
+ // 云录像 若点击了缺失的片段,直接忽略
244
+ _message.warning('当前录像片段缺失!');
245
+
246
+ return _context.abrupt("return");
247
+
248
+ case 5:
228
249
  index = segmentItem.segments.findIndex(function (v) {
229
250
  return time >= v.beginTime && time < v.endTime;
230
251
  });
231
252
 
232
253
  if (!(index === -1)) {
233
- _context.next = 8;
254
+ _context.next = 11;
234
255
  break;
235
256
  }
236
257
 
237
- _context.next = 6;
258
+ _context.next = 9;
238
259
  return queryRecord({
239
260
  cid: segmentItem.cid,
240
261
  date: time,
241
262
  recordType: segmentItem.recordType
242
263
  });
243
264
 
244
- case 6:
265
+ case 9:
245
266
  segments = _context.sent;
246
267
  setState(function (old) {
247
268
  return Object.assign(Object.assign({}, old), {
@@ -249,7 +270,7 @@ function RecordPlayer(_ref) {
249
270
  });
250
271
  });
251
272
 
252
- case 8:
273
+ case 11:
253
274
  //更新time
254
275
  setState(function (old) {
255
276
  var mergeSegments = old.mergeSegments;
@@ -270,7 +291,7 @@ function RecordPlayer(_ref) {
270
291
  });
271
292
  });
272
293
 
273
- case 9:
294
+ case 12:
274
295
  case "end":
275
296
  return _context.stop();
276
297
  }
@@ -278,9 +299,17 @@ function RecordPlayer(_ref) {
278
299
  }, _callee);
279
300
  }));
280
301
  }, // eslint-disable-next-line react-hooks/exhaustive-deps
281
- [segmentItem.cid, segmentItem.recordType, segmentItem.segments, state.loading]); // index变化同步到父组件
302
+ [segmentItem.cid, segmentItem.recordType, segmentItem.segments, state.loading]);
303
+
304
+ var _updatePlayer = function updatePlayer(player, index) {
305
+ playerRef.current[index] = player;
306
+ setState(function (old) {
307
+ return Object.assign({}, old);
308
+ });
309
+ }; // index变化同步到父组件
282
310
  // eslint-disable-next-line react-hooks/exhaustive-deps
283
311
 
312
+
284
313
  useEffect(function () {
285
314
  return onIndexChange(state.selectIndex);
286
315
  }, [state.selectIndex]);
@@ -297,7 +326,7 @@ function RecordPlayer(_ref) {
297
326
  key: "".concat((_b = item === null || item === void 0 ? void 0 : item.date) !== null && _b !== void 0 ? _b : '', "-").concat((_c = item.cid) !== null && _c !== void 0 ? _c : '', "-").concat(index),
298
327
  className: state.selectIndex === index ? 'player-current-index' : '',
299
328
  updatePlayer: function updatePlayer(player) {
300
- return playerRef.current[index] = player;
329
+ return _updatePlayer(player, index);
301
330
  },
302
331
  onClick: function onClick() {
303
332
  return setState(function (old) {
@@ -314,7 +343,7 @@ function RecordPlayer(_ref) {
314
343
  className: state.selectIndex === index ? 'player-current-index' : '',
315
344
  segments: ((_d = recordList[index]) === null || _d === void 0 ? void 0 : _d.segments) || [],
316
345
  updatePlayer: function updatePlayer(player) {
317
- return playerRef.current[index] = player;
346
+ return _updatePlayer(player, index);
318
347
  },
319
348
  onClick: function onClick() {
320
349
  return setState(function (old) {
@@ -330,21 +359,31 @@ function RecordPlayer(_ref) {
330
359
  height: screenType.height
331
360
  }
332
361
  }));
333
- })), /*#__PURE__*/React.createElement(RecordTools, {
362
+ })), /*#__PURE__*/React.createElement("div", {
363
+ className: "player-tools-group"
364
+ }, /*#__PURE__*/React.createElement(DisableMark, {
365
+ disabled: !segmentItem.cid
366
+ }, /*#__PURE__*/React.createElement(RecordTools, {
367
+ time: state.currentTimes[state.selectIndex],
334
368
  fit: fit,
335
369
  toggleFit: toggleFit,
336
370
  getPlayerItem: getPlayerItem,
337
371
  screenNum: state.screenNum,
338
372
  mode: state.mode,
339
373
  containerRef: domRef,
340
- updateState: updateState
374
+ updateState: updateState,
375
+ onTimeChange: onTimeChange,
376
+ onClose: onClose,
377
+ onCloseAll: onCloseAll,
378
+ timeMode: state.timeMode
341
379
  }), /*#__PURE__*/React.createElement(SegmentTimeLine, {
342
- disabled: !!segmentItem.cid,
343
380
  begin: timeBegin,
381
+ updateState: updateState,
344
382
  timeCell: segmentItem.segments,
345
383
  key: state.selectIndex,
346
- onTimeChange: onTimeChange
347
- }), children && /*#__PURE__*/React.cloneElement(children, {
384
+ onTimeChange: onTimeChange,
385
+ timeMode: state.timeMode
386
+ }))), children && /*#__PURE__*/React.cloneElement(children, {
348
387
  selectIndex: state.selectIndex
349
388
  }));
350
389
  }
@@ -6,12 +6,18 @@ interface IToolsProps {
6
6
  updateState: (state: {
7
7
  screenNum?: number;
8
8
  mode?: PlayModeType;
9
+ timeMode?: number;
9
10
  }) => void;
10
11
  screenNum: number;
11
12
  mode: PlayModeType;
12
13
  getPlayerItem: () => ExportPlayerType | undefined;
13
14
  fit?: string;
14
15
  toggleFit?: () => void;
16
+ time?: number;
17
+ onTimeChange?: (time: number) => void;
18
+ onClose?: () => void;
19
+ onCloseAll?: () => void;
20
+ timeMode: number;
15
21
  }
16
- declare function RecordTools({ containerRef, updateState, screenNum, getPlayerItem, mode, fit, toggleFit }: IToolsProps): JSX.Element;
22
+ declare function RecordTools({ containerRef, updateState, screenNum, timeMode, getPlayerItem, mode, toggleFit, fit, time, onTimeChange, onClose, onCloseAll }: IToolsProps): JSX.Element;
17
23
  export default RecordTools;
@@ -1,3 +1,4 @@
1
+ import _useUpdate from "ahooks/es/useUpdate";
1
2
  import _useFullscreen3 from "ahooks/es/useFullscreen";
2
3
 
3
4
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -13,31 +14,44 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
13
14
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
15
 
15
16
  import React from 'react';
16
- import { ScreenType } from './utils';
17
+ import IconFont from '../Player/iconfont';
18
+ import ScreenSelect from './ScreenSelect';
19
+ import TimeSelect from './TimeSelect';
20
+ import TimeMode from './TimeMode';
17
21
 
18
22
  function RecordTools(_ref) {
19
23
  var containerRef = _ref.containerRef,
20
24
  updateState = _ref.updateState,
21
25
  screenNum = _ref.screenNum,
26
+ timeMode = _ref.timeMode,
22
27
  getPlayerItem = _ref.getPlayerItem,
23
28
  mode = _ref.mode,
29
+ toggleFit = _ref.toggleFit,
24
30
  fit = _ref.fit,
25
- toggleFit = _ref.toggleFit;
31
+ time = _ref.time,
32
+ onTimeChange = _ref.onTimeChange,
33
+ onClose = _ref.onClose,
34
+ onCloseAll = _ref.onCloseAll;
26
35
 
27
36
  var _useFullscreen = _useFullscreen3(containerRef),
28
37
  _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
29
38
  isFullscreen = _useFullscreen2[0],
30
- toggleFullscreen = _useFullscreen2[1].toggleFullscreen; // 播放状态控制
39
+ toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
40
+
41
+ var update = _useUpdate(); // 播放状态控制
31
42
 
32
43
 
33
44
  var playToggle = function playToggle() {
34
- var player = getPlayerItem();
45
+ var player = getPlayerItem(); // eslint-disable-next-line @typescript-eslint/no-unused-expressions
46
+
35
47
  player ? player.video.paused ? player.api.play() : player.api.pause() : undefined;
48
+ update();
36
49
  }; // 重连
37
50
 
38
51
 
39
52
  var reload = function reload() {
40
- var player = getPlayerItem();
53
+ var player = getPlayerItem(); // eslint-disable-next-line @typescript-eslint/no-unused-expressions
54
+
41
55
  player ? player.reload ? player.reload() : player.api.reload() : undefined;
42
56
  };
43
57
 
@@ -46,57 +60,109 @@ function RecordTools(_ref) {
46
60
  return player ? player.api.snapshot() : undefined;
47
61
  };
48
62
 
63
+ var player = getPlayerItem();
49
64
  return /*#__PURE__*/React.createElement("div", {
50
65
  className: "player-tools"
51
66
  }, /*#__PURE__*/React.createElement("div", {
52
- className: "split-num"
53
- }, ScreenType.map(function (item) {
54
- return /*#__PURE__*/React.createElement("span", {
55
- key: "".concat(item.name),
56
- style: {
57
- padding: 6
58
- },
59
- onClick: function onClick() {
60
- return updateState({
61
- screenNum: item.name
62
- });
63
- }
64
- }, item.name);
67
+ className: "player-tools-left"
68
+ }, /*#__PURE__*/React.createElement("span", {
69
+ className: "player-tools-item"
70
+ }, /*#__PURE__*/React.createElement(IconFont, {
71
+ type: "lm-player-volume-close",
72
+ title: "\u97F3\u91CF"
73
+ })), /*#__PURE__*/React.createElement("span", {
74
+ className: "player-tools-item"
75
+ }, /*#__PURE__*/React.createElement(IconFont, {
76
+ type: "lm-player-xiangji1fill",
77
+ title: "\u622A\u56FE",
78
+ onClick: snapshot
79
+ })), /*#__PURE__*/React.createElement("span", {
80
+ className: "player-tools-item",
81
+ onClick: reload
82
+ }, /*#__PURE__*/React.createElement(IconFont, {
83
+ type: "lm-player-Refresh_Main",
84
+ title: "\u91CD\u8F7D"
85
+ })), /*#__PURE__*/React.createElement("span", {
86
+ className: "player-tools-item",
87
+ onClick: onClose
88
+ }, /*#__PURE__*/React.createElement(IconFont, {
89
+ type: "lm-player-YesorNo_No_Dark",
90
+ title: "\u5173\u95ED\u5F53\u524D"
91
+ })), /*#__PURE__*/React.createElement("span", {
92
+ className: "player-tools-item"
93
+ }, /*#__PURE__*/React.createElement(IconFont, {
94
+ type: "lm-player-S_Edit_LoadDown",
95
+ title: "\u4E0B\u8F7D\u5F53\u524D\u5F55\u50CF"
96
+ }))), /*#__PURE__*/React.createElement("div", {
97
+ className: "player-tools-mid"
98
+ }, /*#__PURE__*/React.createElement("span", {
99
+ className: "player-tools-item",
100
+ onClick: playToggle
101
+ }, player && !player.video.paused ? /*#__PURE__*/React.createElement(IconFont, {
102
+ type: "lm-player-Pause_Main",
103
+ title: "\u6682\u505C"
104
+ }) : /*#__PURE__*/React.createElement(IconFont, {
105
+ type: "lm-player-Play_Main",
106
+ title: "\u64AD\u653E"
107
+ })), /*#__PURE__*/React.createElement(TimeSelect, {
108
+ time: time,
109
+ onChange: onTimeChange
65
110
  }), /*#__PURE__*/React.createElement("span", {
66
- style: {
67
- padding: 6
68
- },
69
- onClick: toggleFullscreen
70
- }, isFullscreen ? '退出' : '全屏'), /*#__PURE__*/React.createElement("span", {
71
- style: {
72
- padding: 6
73
- },
111
+ className: "player-tools-item",
112
+ onClick: playToggle
113
+ }, player && !player.video.paused ? /*#__PURE__*/React.createElement(IconFont, {
114
+ type: "lm-player-Pause_Main",
115
+ title: "\u6682\u505C"
116
+ }) : /*#__PURE__*/React.createElement(IconFont, {
117
+ type: "lm-player-Play_Main",
118
+ title: "\u64AD\u653E"
119
+ }))), /*#__PURE__*/React.createElement("div", {
120
+ className: "player-tools-right"
121
+ }, /*#__PURE__*/React.createElement("span", {
122
+ className: "player-tools-item",
123
+ onClick: onCloseAll
124
+ }, /*#__PURE__*/React.createElement(IconFont, {
125
+ type: "lm-player-YesorNo_No_Dark",
126
+ title: "\u5173\u95ED\u6240\u6709"
127
+ })), /*#__PURE__*/React.createElement("span", {
128
+ className: "player-tools-item",
74
129
  onClick: function onClick() {
75
130
  return updateState({
76
131
  mode: mode === 1 ? 2 : 1
77
132
  });
78
133
  }
79
- }, "\u5207\u6362", mode === 1 ? '插件' : '浏览器', "\u6A21\u5F0F"), /*#__PURE__*/React.createElement("span", {
80
- style: {
81
- padding: 6
82
- },
83
- onClick: playToggle
84
- }, "\u64AD\u653E/\u6682\u505C"), /*#__PURE__*/React.createElement("span", {
85
- style: {
86
- padding: 6
87
- },
88
- onClick: reload
89
- }, "\u91CD\u8FDE"), /*#__PURE__*/React.createElement("span", {
90
- style: {
91
- padding: 6
92
- },
134
+ }, /*#__PURE__*/React.createElement(IconFont, {
135
+ type: "lm-player-YesorNo_No_Dark",
136
+ title: "\u5207\u6362".concat(mode === 1 ? '插件' : '浏览器', "\u6A21\u5F0F")
137
+ })), /*#__PURE__*/React.createElement("span", {
138
+ className: "player-tools-item",
93
139
  onClick: toggleFit
94
- }, fit === 'fill' ? '自适应' : '填充'), /*#__PURE__*/React.createElement("span", {
95
- style: {
96
- padding: 6
97
- },
98
- onClick: snapshot
99
- }, "\u622A\u56FE")));
140
+ }, fit === 'fill' ? /*#__PURE__*/React.createElement(IconFont, {
141
+ type: "lm-player-S_View_ScreenSizeFull",
142
+ title: "\u81EA\u9002\u5E94"
143
+ }) : /*#__PURE__*/React.createElement(IconFont, {
144
+ type: "lm-player-S_View_ScreenSizeFull",
145
+ title: "\u586B\u5145"
146
+ })), /*#__PURE__*/React.createElement(ScreenSelect, {
147
+ screenNum: screenNum,
148
+ updateState: updateState
149
+ }), /*#__PURE__*/React.createElement("span", {
150
+ className: "player-tools-item",
151
+ onClick: toggleFullscreen
152
+ }, isFullscreen ? /*#__PURE__*/React.createElement(IconFont, {
153
+ type: "lm-player-ExitFull_Main",
154
+ title: "\u5168\u5C4F"
155
+ }) : /*#__PURE__*/React.createElement(IconFont, {
156
+ type: "lm-player-Full_Main",
157
+ title: "\u5168\u5C4F"
158
+ })), /*#__PURE__*/React.createElement(TimeMode, {
159
+ timeMode: timeMode,
160
+ onChange: function onChange(m) {
161
+ return updateState({
162
+ timeMode: m
163
+ });
164
+ }
165
+ })));
100
166
  }
101
167
 
102
168
  export default RecordTools;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ interface IScreenSelect {
3
+ screenNum: number;
4
+ updateState: (arg: any) => void;
5
+ }
6
+ declare function ScreenSelect({ screenNum, updateState }: IScreenSelect): JSX.Element;
7
+ export default ScreenSelect;
@@ -0,0 +1,28 @@
1
+ import "antd/lib/tooltip/style";
2
+ import _Tooltip from "antd/lib/tooltip";
3
+ import React from 'react';
4
+ import { ScreenType } from './utils';
5
+
6
+ function ScreenSelect(_ref) {
7
+ var screenNum = _ref.screenNum,
8
+ updateState = _ref.updateState;
9
+ return /*#__PURE__*/React.createElement(_Tooltip, {
10
+ title: /*#__PURE__*/React.createElement("div", null, ScreenType.map(function (item) {
11
+ return /*#__PURE__*/React.createElement("div", {
12
+ key: "".concat(item.name),
13
+ style: {
14
+ padding: 6
15
+ },
16
+ onClick: function onClick() {
17
+ return updateState({
18
+ screenNum: item.name
19
+ });
20
+ }
21
+ }, item.name);
22
+ }))
23
+ }, /*#__PURE__*/React.createElement("span", {
24
+ className: "player-tools-item"
25
+ }, screenNum));
26
+ }
27
+
28
+ export default ScreenSelect;
@@ -4,7 +4,10 @@ interface ISegmentTimeLineProps {
4
4
  begin?: number;
5
5
  timeCell?: ISegmentType[];
6
6
  onTimeChange?: (time: number) => void;
7
- disabled?: boolean;
7
+ timeMode: number;
8
+ updateState: (state: {
9
+ timeMode: number;
10
+ }) => void;
8
11
  }
9
- declare function SegmentTimeLine({ begin, timeCell, disabled, onTimeChange }: ISegmentTimeLineProps): JSX.Element;
12
+ declare function SegmentTimeLine({ begin, timeCell, onTimeChange, timeMode }: ISegmentTimeLineProps): JSX.Element;
10
13
  export default SegmentTimeLine;
@@ -1,13 +1,14 @@
1
1
  import _useThrottleFn2 from "ahooks/es/useThrottleFn";
2
2
  import _useSize from "ahooks/es/useSize";
3
+ import moment from 'moment';
3
4
  import React, { useEffect, useRef } from 'react';
4
5
  import TimeSlider from './TimeSlider';
5
6
 
6
7
  function SegmentTimeLine(_ref) {
7
8
  var begin = _ref.begin,
8
9
  timeCell = _ref.timeCell,
9
- disabled = _ref.disabled,
10
- onTimeChange = _ref.onTimeChange;
10
+ onTimeChange = _ref.onTimeChange,
11
+ timeMode = _ref.timeMode;
11
12
  var ref = useRef();
12
13
 
13
14
  var size = _useSize(ref);
@@ -18,21 +19,25 @@ function SegmentTimeLine(_ref) {
18
19
  run = _useThrottleFn.run;
19
20
 
20
21
  useEffect(function () {
22
+ var time = begin !== null && begin !== void 0 ? begin : moment().set({
23
+ hours: 0,
24
+ minutes: 0,
25
+ seconds: 0
26
+ }).valueOf();
21
27
  var timeLine = new TimeSlider(ref.current, {
22
28
  onTimeChange: run,
23
- start_timestamp: begin ? begin - 12 * 3600 * 1000 : begin,
24
- current_timestamp: begin,
25
- timecell: timeCell
29
+ start_timestamp: time - timeMode / 2 * 3600 * 1000,
30
+ current_timestamp: time,
31
+ timecell: timeCell,
32
+ hours_per_ruler: timeMode
26
33
  });
27
34
  return function () {
28
35
  return timeLine.destory();
29
36
  };
30
- }, [begin, timeCell, size === null || size === void 0 ? void 0 : size.width, run]);
37
+ }, [begin, timeCell, size === null || size === void 0 ? void 0 : size.width, run, timeMode]);
31
38
  return /*#__PURE__*/React.createElement("div", {
32
39
  className: "record-time-line"
33
- }, !disabled && /*#__PURE__*/React.createElement("div", {
34
- className: "time-line-mask"
35
- }), /*#__PURE__*/React.createElement("canvas", {
40
+ }, /*#__PURE__*/React.createElement("canvas", {
36
41
  ref: ref
37
42
  }));
38
43
  }
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ interface ITimeModeProps {
3
+ timeMode: number;
4
+ onChange: (timeMode: number) => void;
5
+ }
6
+ declare function TimeMode({ timeMode, onChange }: ITimeModeProps): JSX.Element;
7
+ export default TimeMode;
@@ -0,0 +1,23 @@
1
+ import "antd/lib/select/style";
2
+ import _Select from "antd/lib/select";
3
+ import React from 'react';
4
+ import { TimeModeLibs } from './utils';
5
+
6
+ function TimeMode(_ref) {
7
+ var timeMode = _ref.timeMode,
8
+ onChange = _ref.onChange;
9
+ return /*#__PURE__*/React.createElement(_Select, {
10
+ value: timeMode,
11
+ onChange: onChange,
12
+ className: "time-mode-select",
13
+ dropdownClassName: "time-mode-select-dropdown",
14
+ placement: "topLeft"
15
+ }, TimeModeLibs.map(function (item) {
16
+ return /*#__PURE__*/React.createElement(_Select.Option, {
17
+ value: item.name,
18
+ key: item.name
19
+ }, item.name, "\u5C0F\u65F6");
20
+ }));
21
+ }
22
+
23
+ export default TimeMode;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ interface ITimeSelectProps {
3
+ time?: number;
4
+ onChange?: (time: number) => void;
5
+ }
6
+ declare function TimeSelect({ time, onChange }: ITimeSelectProps): JSX.Element;
7
+ export default TimeSelect;