@cloud-app-dev/vidc 3.0.12 → 3.0.15

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 (67) hide show
  1. package/.eslintrc +3 -2
  2. package/.hintrc +9 -0
  3. package/.prettierrc +1 -1
  4. package/es/CheckGroupFixed/index.js +1 -1
  5. package/es/DomMove/demo.d.ts +1 -1
  6. package/es/DomMove/demo.js +1 -1
  7. package/es/DomMove/index.js +4 -3
  8. package/es/ErrorFallback/index.d.ts +9 -0
  9. package/es/ErrorFallback/index.js +36 -0
  10. package/es/ErrorFallback/inerface.d.ts +48 -0
  11. package/es/FullScreen/index.js +5 -5
  12. package/es/IconFont/index.d.ts +2 -2
  13. package/es/Input/index.js +4 -4
  14. package/es/List/VList/index.d.ts +1 -1
  15. package/es/LoaderScript/index.js +3 -3
  16. package/es/LoaderScript/utils.js +4 -2
  17. package/es/Map/BasicMap/index.js +3 -2
  18. package/es/Map/LevelCenter/DragMarker/index.js +2 -2
  19. package/es/Map/LoaderMap/index.js +3 -3
  20. package/es/Picture/component/DefaultRects/index.js +1 -1
  21. package/es/Picture/component/DrawRect/index.js +1 -1
  22. package/es/Picture/component/RectMenu/index.js +1 -1
  23. package/es/Picture/index.js +1 -2
  24. package/es/Player/api/index.d.ts +0 -1
  25. package/es/Player/api/index.js +0 -1
  26. package/es/Player/contraller_bar/right_bar.js +2 -3
  27. package/es/Player/frontend_player.js +3 -2
  28. package/es/Player/frontend_timeline.js +1 -1
  29. package/es/Player/iconfont.d.ts +4 -12
  30. package/es/Player/iconfont.js +7 -9
  31. package/es/Player/segment_player.js +1 -1
  32. package/es/Player/single_player.js +2 -2
  33. package/es/Player/style/iconfont.js +51 -0
  34. package/es/PlayerExt/index.css +1 -1
  35. package/es/ScreenPlayer/Live.d.ts +6 -1
  36. package/es/ScreenPlayer/Live.js +8 -6
  37. package/es/ScreenPlayer/LiveTools.d.ts +1 -1
  38. package/es/ScreenPlayer/LiveTools.js +15 -7
  39. package/es/ScreenPlayer/PlayerWithExt.js +31 -17
  40. package/es/ScreenPlayer/Record.js +6 -2
  41. package/es/ScreenPlayer/RecordTools.js +12 -4
  42. package/es/ScreenPlayer/TimeSlider.js +6 -2
  43. package/es/ScreenPlayer/demo.js +6 -12
  44. package/es/ScreenPlayer/index.css +1 -0
  45. package/es/ScreenPlayer/index.js +4 -3
  46. package/es/ScreenPlayer/useTimeSlider.js +51 -17
  47. package/es/Tree/index.js +24 -21
  48. package/es/index.d.ts +2 -2
  49. package/es/index.js +3 -3
  50. package/es/useFullscreen/demo.d.ts +2 -0
  51. package/es/useFullscreen/demo.js +51 -0
  52. package/es/useFullscreen/index.d.ts +12 -0
  53. package/es/useFullscreen/index.js +95 -0
  54. package/es/utils.js +1 -1
  55. package/package.json +4 -2
  56. package/test.html +16 -0
  57. package/test.js +93 -45
  58. package/es/ErrorBoundary/index.d.ts +0 -18
  59. package/es/ErrorBoundary/index.js +0 -79
  60. package/es/List/renderItem.d.ts +0 -20
  61. package/es/List/renderItem.js +0 -71
  62. package/es/Player/style/iconfont.css +0 -179
  63. package/es/Player/style/iconfont.ttf +0 -0
  64. package/es/Player/style/iconfont.woff +0 -0
  65. package/es/Player/style/iconfont.woff2 +0 -0
  66. package/es/withErrorBoundary/index.d.ts +0 -9
  67. package/es/withErrorBoundary/index.js +0 -45
@@ -16,7 +16,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
16
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
17
 
18
18
  import moment from 'moment';
19
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
19
+ import { useEffect, useMemo, useRef, useState } from 'react';
20
20
  var hours = [1, 6, 12, 24];
21
21
  var currentColor = '#FF000A';
22
22
  var normalLineColor = '#ffffff';
@@ -133,10 +133,15 @@ function useTimeSlider(canvasRef, _ref2) {
133
133
  });
134
134
  };
135
135
 
136
- var clearCanvas = useCallback(function () {
136
+ var clearCanvas = function clearCanvas() {
137
137
  return ctx.clearRect(0, 0, width, height);
138
- }, [ctx, width, height]);
139
- var drawOverlay = useCallback(function () {
138
+ };
139
+ /**
140
+ * 绘制覆盖时间刻度颜色,表示有录像的部分
141
+ */
142
+
143
+
144
+ var drawOverlay = function drawOverlay() {
140
145
  segments.forEach(function (item) {
141
146
  var _a;
142
147
 
@@ -147,12 +152,13 @@ function useTimeSlider(canvasRef, _ref2) {
147
152
  ctx.fillStyle = item.url ? ((_a = item.style) === null || _a === void 0 ? void 0 : _a.background) || hoverLineColor : '#242C3D';
148
153
  ctx.fillRect(beginX, height - 10, scale_width + 1, height);
149
154
  });
150
- }, [ctx, segments, height, width, state.begin, state.hoursPer]);
155
+ };
151
156
  /**
152
157
  * 绘制刻度相关的
153
158
  */
154
159
 
155
- var drawScale = useCallback(function () {
160
+
161
+ var drawScale = function drawScale() {
156
162
  var px_per_min = width / (state.hoursPer * 60); // px/min
157
163
 
158
164
  var px_per_ms = width / (state.hoursPer * 60 * 60 * 1000); // px/ms
@@ -226,13 +232,14 @@ function useTimeSlider(canvasRef, _ref2) {
226
232
 
227
233
  drawLine(ctx, graduation_left, height - lineH, graduation_left, height, normalLineColor, 2);
228
234
  }
229
- }, [ctx, height, width, state.begin, state.hoursPer]);
235
+ };
230
236
  /**
231
237
  * 绘制当前刻度
232
238
  * @returns
233
239
  */
234
240
 
235
- var drawCurrentLine = useCallback(function () {
241
+
242
+ var drawCurrentLine = function drawCurrentLine() {
236
243
  var currentTime = state.currentTime,
237
244
  begin = state.begin,
238
245
  hoursPer = state.hoursPer;
@@ -255,13 +262,13 @@ function useTimeSlider(canvasRef, _ref2) {
255
262
  text: formartTimestemp(time)
256
263
  });
257
264
  drawLine(ctx, left, 20, left, height, currentColor, 2); //中间当前点线
258
- // eslint-disable-next-line react-hooks/exhaustive-deps
259
- }, [ctx, height, width, state.currentTime, state.begin, state.hoursPer]);
265
+ };
260
266
  /**
261
267
  * 绘制提示时间
262
268
  */
263
269
 
264
- var drawHoverLine = useCallback(function () {
270
+
271
+ var drawHoverLine = function drawHoverLine() {
265
272
  drawText(ctx, {
266
273
  fillStyle: hoverLineColor,
267
274
  font: '12px Arial',
@@ -270,12 +277,13 @@ function useTimeSlider(canvasRef, _ref2) {
270
277
  text: formartTimestemp(state.hover.time)
271
278
  });
272
279
  drawLine(ctx, state.hover.x, 20, state.hover.x, height, hoverLineColor, 1);
273
- }, [ctx, height, state.hover.time, state.hover.x]);
280
+ };
274
281
  /**
275
282
  * 获取鼠标posx
276
283
  * @param {*} e
277
284
  */
278
285
 
286
+
279
287
  var get_cursor_x_position = function get_cursor_x_position(e) {
280
288
  var posx = 0;
281
289
 
@@ -313,8 +321,9 @@ function useTimeSlider(canvasRef, _ref2) {
313
321
  drawScale();
314
322
  drawCurrentLine();
315
323
  state.hover.time && drawHoverLine();
316
- }
317
- }, [canvas, state.begin, state.currentTime, state.hoursPer, segments, state.hover, clearCanvas, drawOverlay, drawScale, drawCurrentLine, drawHoverLine]);
324
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
325
+
326
+ }, [canvas, state.begin, state.currentTime, state.hoursPer, segments, state.hover]);
318
327
 
319
328
  _useUpdateEffect(function () {
320
329
  return update({
@@ -333,6 +342,10 @@ function useTimeSlider(canvasRef, _ref2) {
333
342
  currentTime: currentTime
334
343
  });
335
344
  }, [currentTime]);
345
+ /**
346
+ * 触发绘制范围单位(hour)
347
+ */
348
+
336
349
 
337
350
  _useEventListener('mousewheel', function (event) {
338
351
  event.preventDefault();
@@ -358,7 +371,7 @@ function useTimeSlider(canvasRef, _ref2) {
358
371
  }
359
372
  }
360
373
 
361
- var new_begin = middle_time - state.hoursPer * 3600 * 1000 / 2; //start_timestamp = 当前中间的时间 - zoom/2
374
+ var new_begin = middle_time - state.hoursPer * 3600 * 1000 / 2; //new_begin = 当前中间的时间 - hoursPer/2
362
375
 
363
376
  setState(function (old) {
364
377
  return Object.assign(Object.assign({}, old), {
@@ -368,11 +381,15 @@ function useTimeSlider(canvasRef, _ref2) {
368
381
  });
369
382
 
370
383
  _nextTick(function () {
371
- return onHoursPerChange && onHoursPerChange(new_hoursPer);
384
+ return onHoursPerChange === null || onHoursPerChange === void 0 ? void 0 : onHoursPerChange(new_hoursPer);
372
385
  });
373
386
  }, {
374
387
  target: canvasRef
375
388
  });
389
+ /**
390
+ * 用于处理canvas移除hover效果
391
+ */
392
+
376
393
 
377
394
  _useEventListener('mouseout', function () {
378
395
  return setState(function (old) {
@@ -386,6 +403,10 @@ function useTimeSlider(canvasRef, _ref2) {
386
403
  }, {
387
404
  target: canvasRef
388
405
  });
406
+ /**
407
+ * hover效果绘制
408
+ */
409
+
389
410
 
390
411
  _useEventListener('mousemove', function (e) {
391
412
  if (extRef.current.mousedownTime) {
@@ -415,6 +436,10 @@ function useTimeSlider(canvasRef, _ref2) {
415
436
  }, {
416
437
  target: canvasRef
417
438
  });
439
+ /**
440
+ * 标记点击、拖动的触发器
441
+ */
442
+
418
443
 
419
444
  _useEventListener('mousedown', function (e) {
420
445
  extRef.current.mousedownTime = Date.now();
@@ -422,9 +447,14 @@ function useTimeSlider(canvasRef, _ref2) {
422
447
  }, {
423
448
  target: canvasRef
424
449
  });
450
+ /**
451
+ * 处理点击、结束拖动的处理
452
+ */
453
+
425
454
 
426
455
  _useEventListener('mouseup', function (e) {
427
456
  if (!extRef.current.mousedownTime) {
457
+ // 未在canvas上触发mousedown 过滤
428
458
  return;
429
459
  }
430
460
 
@@ -451,7 +481,7 @@ function useTimeSlider(canvasRef, _ref2) {
451
481
  });
452
482
 
453
483
  _nextTick(function () {
454
- return onTimeChange && onTimeChange(new_current, outTimeline);
484
+ return onTimeChange === null || onTimeChange === void 0 ? void 0 : onTimeChange(new_current, outTimeline);
455
485
  });
456
486
  } // 清楚拖拽关联信息
457
487
 
@@ -461,6 +491,10 @@ function useTimeSlider(canvasRef, _ref2) {
461
491
  }, {
462
492
  target: document
463
493
  });
494
+ /**
495
+ * 拖动处理
496
+ */
497
+
464
498
 
465
499
  _useEventListener('mousemove', function (e) {
466
500
  if (!extRef.current.mousedownTime) {
package/es/Tree/index.js CHANGED
@@ -18,18 +18,14 @@ function BaseTree(_a, ref) {
18
18
  icon = _a.icon,
19
19
  props = __rest(_a, ["treeData", "className", "showIcon", "treeNodeProps", "icon"]);
20
20
 
21
- var _useMemo = useMemo(function () {
22
- return treeNodeProps;
23
- }, []),
24
- prefix = _useMemo.prefix,
25
- suffix = _useMemo.suffix,
26
- keyword = _useMemo.keyword,
27
- _useMemo$key = _useMemo.key,
28
- key = _useMemo$key === void 0 ? 'id' : _useMemo$key,
29
- _useMemo$nameKey = _useMemo.nameKey,
30
- nameKey = _useMemo$nameKey === void 0 ? 'name' : _useMemo$nameKey,
31
- RenderTreeTitle = _useMemo.RenderTreeTitle;
32
-
21
+ var prefix = treeNodeProps.prefix,
22
+ suffix = treeNodeProps.suffix,
23
+ keyword = treeNodeProps.keyword,
24
+ _treeNodeProps$key = treeNodeProps.key,
25
+ key = _treeNodeProps$key === void 0 ? 'id' : _treeNodeProps$key,
26
+ _treeNodeProps$nameKe = treeNodeProps.nameKey,
27
+ nameKey = _treeNodeProps$nameKe === void 0 ? 'name' : _treeNodeProps$nameKe,
28
+ RenderTreeTitle = treeNodeProps.RenderTreeTitle;
33
29
  var treeRef = useRef(null);
34
30
  useImperativeHandle(ref, function () {
35
31
  return {
@@ -42,6 +38,21 @@ function BaseTree(_a, ref) {
42
38
  }
43
39
  };
44
40
  }, [props.checkable]);
41
+
42
+ function defaultRenderTitle(node) {
43
+ return /*#__PURE__*/React.createElement("span", {
44
+ title: node[nameKey],
45
+ className: "tree-item-title"
46
+ }, /*#__PURE__*/React.createElement("span", null, showIcon && (icon === null || icon === void 0 ? void 0 : icon(node)), prefix === null || prefix === void 0 ? void 0 : prefix(node), /*#__PURE__*/React.createElement(HightLevel, {
47
+ keyword: keyword,
48
+ name: node[nameKey]
49
+ })), suffix === null || suffix === void 0 ? void 0 : suffix(node));
50
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
51
+
52
+
53
+ var titleRender = useMemo(function () {
54
+ return RenderTreeTitle !== null && RenderTreeTitle !== void 0 ? RenderTreeTitle : defaultRenderTitle;
55
+ }, []);
45
56
  return /*#__PURE__*/React.createElement(_Tree, Object.assign({
46
57
  className: "cloudapp-c-base-tree-component ".concat(className),
47
58
  ref: treeRef,
@@ -59,15 +70,7 @@ function BaseTree(_a, ref) {
59
70
  title: nameKey
60
71
  },
61
72
  key: keyword,
62
- titleRender: RenderTreeTitle ? RenderTreeTitle : function (node) {
63
- return /*#__PURE__*/React.createElement("span", {
64
- title: node[nameKey],
65
- className: "tree-item-title"
66
- }, /*#__PURE__*/React.createElement("span", null, showIcon && icon && icon(node), prefix && prefix(node), /*#__PURE__*/React.createElement(HightLevel, {
67
- keyword: keyword,
68
- name: node[nameKey]
69
- })), suffix && suffix(node));
70
- }
73
+ titleRender: titleRender
71
74
  }, props));
72
75
  }
73
76
 
package/es/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export { default as DisableMark } from './DisableMark';
11
11
  export { default as DomMove } from './DomMove';
12
12
  export { default as Drag } from './Drag';
13
13
  export { default as Drawer } from './Drawer';
14
- export { default as ErrorBoundary } from './ErrorBoundary';
14
+ export { default as ErrorFallback } from './ErrorFallback';
15
15
  export { default as FrontendPlayer } from './FrontendPlayer';
16
16
  export { default as FullScreen } from './FullScreen';
17
17
  export { default as HightLevel } from './HightLevel';
@@ -36,7 +36,7 @@ export { default as TableLayout } from './TableLayout';
36
36
  export { default as ThemeAntd } from './ThemeAntd';
37
37
  export { default as Timeout } from './Timeout';
38
38
  export { default as Tree } from './Tree';
39
+ export { default as useFullscreen } from './useFullscreen';
39
40
  export { default as useHistory } from './useHistory';
40
41
  export { default as useInfiniteScroll } from './useInfiniteScroll';
41
42
  export { default as useVirtualList } from './useVirtualList';
42
- export { default as withErrorBoundary } from './withErrorBoundary';
package/es/index.js CHANGED
@@ -11,7 +11,7 @@ export { default as DisableMark } from './DisableMark';
11
11
  export { default as DomMove } from './DomMove';
12
12
  export { default as Drag } from './Drag';
13
13
  export { default as Drawer } from './Drawer';
14
- export { default as ErrorBoundary } from './ErrorBoundary';
14
+ export { default as ErrorFallback } from './ErrorFallback';
15
15
  export { default as FrontendPlayer } from './FrontendPlayer';
16
16
  export { default as FullScreen } from './FullScreen';
17
17
  export { default as HightLevel } from './HightLevel';
@@ -36,7 +36,7 @@ export { default as TableLayout } from './TableLayout';
36
36
  export { default as ThemeAntd } from './ThemeAntd';
37
37
  export { default as Timeout } from './Timeout';
38
38
  export { default as Tree } from './Tree';
39
+ export { default as useFullscreen } from './useFullscreen';
39
40
  export { default as useHistory } from './useHistory';
40
41
  export { default as useInfiniteScroll } from './useInfiniteScroll';
41
- export { default as useVirtualList } from './useVirtualList';
42
- export { default as withErrorBoundary } from './withErrorBoundary';
42
+ export { default as useVirtualList } from './useVirtualList';
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function App(): JSX.Element;
@@ -0,0 +1,51 @@
1
+ import _useFullscreen3 from "ahooks/es/useFullscreen";
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, { useRef } from 'react';
16
+ export default function App() {
17
+ var ref1 = useRef();
18
+ var ref2 = useRef();
19
+
20
+ var _useFullscreen = _useFullscreen3(ref1),
21
+ _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
22
+ fullscreen1 = _useFullscreen2[0],
23
+ options1 = _useFullscreen2[1];
24
+
25
+ var _useFullscreen4 = _useFullscreen3(ref2),
26
+ _useFullscreen5 = _slicedToArray(_useFullscreen4, 2),
27
+ fullscreen2 = _useFullscreen5[0],
28
+ options2 = _useFullscreen5[1];
29
+
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ className: "App"
32
+ }, /*#__PURE__*/React.createElement("div", {
33
+ style: {
34
+ width: 400,
35
+ height: 400,
36
+ background: 'blue'
37
+ },
38
+ ref: ref1
39
+ }, /*#__PURE__*/React.createElement("button", {
40
+ onClick: options1.toggleFullscreen
41
+ }, "\u7236\u5143\u7D20", fullscreen1 ? '退出全屏' : '全屏'), /*#__PURE__*/React.createElement("div", {
42
+ style: {
43
+ width: 200,
44
+ height: 200,
45
+ background: 'red'
46
+ },
47
+ ref: ref2
48
+ }, /*#__PURE__*/React.createElement("button", {
49
+ onClick: options2.toggleFullscreen
50
+ }, "\u5B50\u5143\u7D20", fullscreen2 ? '退出全屏' : '全屏'))), /*#__PURE__*/React.createElement("div", null));
51
+ }
@@ -0,0 +1,12 @@
1
+ import type { BasicTarget } from 'ahooks/es/utils/domTarget';
2
+ export interface Options {
3
+ onExit?: () => void;
4
+ onEnter?: () => void;
5
+ }
6
+ declare const useFullscreen: (target: BasicTarget, options?: Options) => readonly [boolean, {
7
+ readonly enterFullscreen: () => void;
8
+ readonly exitFullscreen: () => void;
9
+ readonly toggleFullscreen: () => void;
10
+ readonly isEnabled: boolean;
11
+ }];
12
+ export default useFullscreen;
@@ -0,0 +1,95 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import { useState } from 'react';
14
+ import useLatest from 'ahooks/es/useLatest';
15
+ import useMemoizedFn from 'ahooks/es/useMemoizedFn';
16
+ import useUnmount from 'ahooks/es/useUnmount';
17
+ import { getTargetElement } from 'ahooks/es/utils/domTarget';
18
+ import screenfull from 'screenfull';
19
+
20
+ var useFullscreen = function useFullscreen(target, options) {
21
+ var _ref = options || {},
22
+ onExit = _ref.onExit,
23
+ onEnter = _ref.onEnter;
24
+
25
+ var onExitRef = useLatest(onExit);
26
+ var onEnterRef = useLatest(onEnter);
27
+
28
+ var _useState = useState(false),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ state = _useState2[0],
31
+ setState = _useState2[1];
32
+
33
+ var onChange = function onChange() {
34
+ var _a, _b;
35
+
36
+ if (screenfull.isEnabled) {
37
+ var el = getTargetElement(target);
38
+ var isFullscreen = document.fullscreenElement === el;
39
+
40
+ if (isFullscreen) {
41
+ (_a = onEnterRef.current) === null || _a === void 0 ? void 0 : _a.call(onEnterRef);
42
+ } else {
43
+ screenfull.off('change', onChange);
44
+ (_b = onExitRef.current) === null || _b === void 0 ? void 0 : _b.call(onExitRef);
45
+ }
46
+
47
+ setState(isFullscreen);
48
+ }
49
+ };
50
+
51
+ var enterFullscreen = function enterFullscreen() {
52
+ var el = getTargetElement(target);
53
+
54
+ if (!el) {
55
+ return;
56
+ }
57
+
58
+ if (screenfull.isEnabled) {
59
+ try {
60
+ screenfull.request(el);
61
+ screenfull.on('change', onChange);
62
+ } catch (error) {
63
+ console.error(error);
64
+ }
65
+ }
66
+ };
67
+
68
+ var exitFullscreen = function exitFullscreen() {
69
+ if (screenfull.isEnabled) {
70
+ screenfull.exit();
71
+ }
72
+ };
73
+
74
+ var toggleFullscreen = function toggleFullscreen() {
75
+ if (state) {
76
+ exitFullscreen();
77
+ } else {
78
+ enterFullscreen();
79
+ }
80
+ };
81
+
82
+ useUnmount(function () {
83
+ if (screenfull.isEnabled) {
84
+ screenfull.off('change', onChange);
85
+ }
86
+ });
87
+ return [state, {
88
+ enterFullscreen: useMemoizedFn(enterFullscreen),
89
+ exitFullscreen: useMemoizedFn(exitFullscreen),
90
+ toggleFullscreen: useMemoizedFn(toggleFullscreen),
91
+ isEnabled: screenfull.isEnabled
92
+ }];
93
+ };
94
+
95
+ export default useFullscreen;
package/es/utils.js CHANGED
@@ -49,7 +49,7 @@ export function getPlaceCodesWithParent(areaCode) {
49
49
  return v[key] === areaCode;
50
50
  });
51
51
 
52
- if (info && info.pcodes) {
52
+ if (info === null || info === void 0 ? void 0 : info.pcodes) {
53
53
  return info.pcodes.reverse();
54
54
  }
55
55
 
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": "3.0.12",
5
+ "version": "3.0.15",
6
6
  "scripts": {
7
7
  "start": "dumi dev",
8
8
  "docs:build": "dumi build",
@@ -36,7 +36,9 @@
36
36
  "hls.js": "^1.2.1",
37
37
  "immer": "^9.0.15",
38
38
  "lodash-es": "^4.17.21",
39
- "moment": "^2.29.4"
39
+ "moment": "^2.29.4",
40
+ "react-error-boundary": "^3.1.4",
41
+ "screenfull": "^6.0.2"
40
42
  },
41
43
  "devDependencies": {
42
44
  "@cloud-app-dev/utils": "^4.0.1",
package/test.html ADDED
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Document</title>
8
+ <script src="./test.js"></script>
9
+ </head>
10
+ <body>
11
+ <script>
12
+ const html = `<p class=MsoNormal ><span ><font face="仿宋_GB2312" >涉案服装合格证上带有</font><font face="仿宋_GB2312" >“售后服务热线:18928955232”等信息;购物小票显示该店地址为“芙蓉中路一段88号天健芙蓉盛,汇名仓外贸服装店(小门东1门旁)”,并且带有“合作热线:188-1184-0024、13360003040”等信息;店内宣传有“DHC二维码”等信息。涉案服装合格证上带有“‘</font></span><img width="720" height="720" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2671.png" ><span ><font face="仿宋_GB2312" >’商标、</font></span><span><a href="http://www.dhcfs.com" ><u><span class="16" ><font face="仿宋_GB2312" >www.dhcfs.com</font></span></u></a></span><span ><font face="仿宋_GB2312" >网址</font><font face="仿宋_GB2312" >”等信息,下方显示地址为“开平市幕沙路70号益华广场B幢131室”;购物小票上显示官网网址为“</font></span><span><a href="http://www.dhcfs.com" ><u><span class="16" ><font face="仿宋_GB2312" >www.dhcfs.com</font></span></u></a></span><span ><font face="仿宋_GB2312" >”;购物塑料袋上带有“‘</font></span><img width="720" height="720" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2672.png" ><a href="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2672.png">11111</a><span ><font face="仿宋_GB2312" >’商标、</font></span><span><a href="http://www.dhcfs.com" ><u><span class="16" ><font face="仿宋_GB2312" >www.dhcfs.com</font></span></u></a></span><span ><font face="仿宋_GB2312" >网址</font><font face="仿宋_GB2312" >”等信息。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >1:同其他实物证据意见一致。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >2、4:同上意见。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >原:出示证据</font><font face="仿宋_GB2312" >12封存实物。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >?:各被告确认被控侵权产品封存是否完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >1:完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >2、4:完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >?:当庭开启,发表比对意见。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >原:(</font><font face="仿宋_GB2312" >1)1件蓝色棒球运动服,正面带有“</font></span><img width="1576" height="1440" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2673.jpg" ><span ><font face="仿宋_GB2312" >” “YANKEES”标识,与原告第4336076号、第4336075号注册商标相同,背面带有“YANKEES”标识,与原告第4336075号注册商标相同,衣袖带有“</font></span><img width="2560" height="1390" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2674.jpg" ><span ><font face="仿宋_GB2312" >”标识,与原告第1800888号注册商标相同,纽扣使用“MLB”标识,与原告第4336063号注册商标相同,水洗标带有“</font></span><img width="1249" height="720" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2675.jpg" ><span ><font face="仿宋_GB2312" >” “MLB”标识,与原告第506821号、第4336063号注册商标相同;</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >(</font><font face="仿宋_GB2312" >2)1条紫色裤子,正面带有“</font></span><img width="1440" height="1932" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2676.jpg" ><span ><font face="仿宋_GB2312" >” “</font></span><img width="1280" height="652" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2677.jpg" ><span ><font face="仿宋_GB2312" >”标识,与原告第506820号、第4336084号注册商标相同,裤子的背面带有“</font></span><img width="2560" height="1390" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2678.jpg" ><span ><font face="仿宋_GB2312" >”标识,与原告第1800888号注册商标相同,水洗标带有“</font></span><img width="1249" height="720" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2679.jpg" ><span ><font face="仿宋_GB2312" >” “MLB”标识,与原告第506821号、第4336063号注册商标相同。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >1:真实性、合法性无异议,关联性不认可。该商品并非被告1销售,也没有证据证明该商品属于侵权商品,销售方有可能是从合法途径进货销售的。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >2、4:同被告1意见。关于购物袋和卡牌的意见与证据8一致。被告胡拔庆与</font></span><span ><font face="仿宋_GB2312" >大汇仓设计室旗下店铺</font><font face="仿宋_GB2312" >“汇名仓 外贸出口成衣工厂店”(长沙华创店)有其他自有品牌合作,没有授权其在该被控侵权产品上使用,该商品来源我方也不清楚,应当由该店铺经营者自行陈述。涉案产品也不是我方销售给涉案店铺的。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >原:出示证据</font><font face="仿宋_GB2312" >14封存实物。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >?:各被告确认被控侵权产品封存是否完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >1:完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >2、4:完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >?:当庭开启,发表比对意见。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >原:(</font><font face="仿宋_GB2312" >1)1件深蓝色棒球服,正面带有“</font></span><img width="1576" height="1440" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2680.jpg" ><span ><font face="仿宋_GB2312" >” “YANKEES”标识,与原告第4336076号、第4336075号注册商标相同,背面带有“</font></span><img width="2560" height="1386" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2681.jpg" ><span ><font face="仿宋_GB2312" >”标识,与原告第</font></span><span >1800888</span><span ><font face="仿宋_GB2312" >号注册商标相同,纽扣使用</font><font face="仿宋_GB2312" >“MLB”标识,与原告第4336063号注册商标相同,水洗标带有“</font></span><img width="1241" height="720" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2682.jpg" ><span ><font face="仿宋_GB2312" >” “MLB”标识,与原告第</font></span><span >506821</span><span ><font face="仿宋_GB2312" >号、第</font><font face="仿宋_GB2312" >4336063号注册商标相同;</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >(</font><font face="仿宋_GB2312" >2)1件蓝色卫衣,正面带有“</font></span><img width="1440" height="1540" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2683.jpg" ><span ><font face="仿宋_GB2312" >” “YANKEES”标识,与原告第</font></span><span >506836</span><span ><font face="仿宋_GB2312" >号、第</font><font face="仿宋_GB2312" >4336075号注册商标相同,水洗标带有“</font></span><img width="1241" height="720" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2684.jpg" ><span ><font face="仿宋_GB2312" >” “MLB”标识,与原告第</font></span><span >506821</span><span ><font face="仿宋_GB2312" >号、第</font><font face="仿宋_GB2312" >4336063号注册商标相同。蓝色卫衣吊牌“大汇仓”商标以及网站与其他被控侵权产品实物一致,但是吊牌上售后服务热线为4008088140,经销商为南京庆创服饰有限公司。</font></span><span ><o:p></o:p></span></p><table class=MsoTableGrid border=1 cellspacing=0 ><tr><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td></tr><tr><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td></tr><tr><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td></tr><tr><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td></tr><tr><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td></tr><tr><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td><td width=66 valign=top ><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p></td></tr></table><p class=MsoNormal ><span ><o:p>&nbsp;</o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >1:与其他侵权实物证据质证意见一致。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >2、4:公证书、实物真实性、合法性无异议,认可蓝色棒球服上的卡牌是被告、4提供,但是蓝色卫衣该吊牌上所显示公司并不存在,该卡牌长的与被告2、4提供的卡牌有部分相似之处,但并不是被告提供,不清楚来源,细看发现字体和颜色是有差异的。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >原:从蓝色卫衣上的大汇仓商标和网站信息可以将商品来源指向被告</font><font face="仿宋_GB2312" >2、4。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >原:出示证据</font><font face="仿宋_GB2312" >16封存实物。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >?:各被告确认被控侵权产品封存是否完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >1:完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >被</font><font face="仿宋_GB2312" >2、4:完好。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >?:当庭开启,发表比对意见。</font></span><span ><o:p></o:p></span></p><p class=MsoNormal ><span ><font face="仿宋_GB2312" >原:</font><font face="仿宋_GB2312" >1件蓝色棒球运动服,正面带有“</font></span><img width="1576" height="1440" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2685.jpg" ><span ><font face="仿宋_GB2312" >” “YANKEES”标识,与原告第4336076号、第4336075号注册商标相同,背面带有“</font></span><img width="2560" height="1390" src="file:////private/var/folders/51/wvlmktvs2r3__qp4bg2q5nbm0000gn/T/com.kingsoft.wpsoffice.mac/wps-huang/ksohtml//wps2686.jpg" ><span ><font face="仿宋_GB2312" >”标识,与原告第1800888号注册商标相同,纽扣带有“MLB”标识,与原告第4336063号注册商标相同,水</font></span></p>`
13
+ document.body.innerHTML = parseHtml(html)
14
+ </script>
15
+ </body>
16
+ </html>