@cloud-app-dev/vidc 4.0.20 → 4.0.22

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 (234) hide show
  1. package/es/AppContext/Sync.js +42 -0
  2. package/es/AppContext/index.js +141 -0
  3. package/es/AppContext/interface.d.ts +41 -0
  4. package/es/AppContext/static.js +9 -0
  5. package/es/Auth/index.js +14 -0
  6. package/es/AutoExit/index.js +19 -0
  7. package/es/CheckGroupFixed/demo.js +22 -0
  8. package/es/CheckGroupFixed/index.js +140 -0
  9. package/es/CheckGroupFixed/index.less +56 -0
  10. package/es/Config/index.js +77 -0
  11. package/es/Config/interface.d.ts +65 -0
  12. package/es/Config/utils.js +33 -0
  13. package/es/ConfigContext/index.js +21 -0
  14. package/es/CustomRenderSelect/index.js +72 -0
  15. package/es/CustomRenderSelect/index.less +25 -0
  16. package/es/DBTools/index.js +336 -0
  17. package/es/DisableMark/index.js +19 -0
  18. package/es/DisableMark/index.less +9 -0
  19. package/es/DomMove/demo.js +16 -0
  20. package/es/DomMove/index.js +139 -0
  21. package/es/DomMove/utils.js +32 -0
  22. package/es/Drag/DragAndDropItem.js +133 -0
  23. package/es/Drag/DropItem.js +50 -0
  24. package/es/Drag/index.d.ts +9 -0
  25. package/es/Drag/index.js +7 -0
  26. package/es/Drag/interface.d.ts +16 -0
  27. package/es/DynamicGridList/Demo.js +77 -0
  28. package/es/DynamicGridList/index.js +67 -0
  29. package/es/DynamicList/demo.js +44 -0
  30. package/es/DynamicList/index.js +86 -0
  31. package/es/DynamicList/index.less +17 -0
  32. package/es/DynamicList/interface.d.ts +19 -0
  33. package/es/DynamicList/utils.js +6 -0
  34. package/es/ErrorFallback/index.js +31 -0
  35. package/es/ErrorFallback/inerface.d.ts +48 -0
  36. package/es/EventTools/index.js +12 -0
  37. package/es/FrontendPlayer/index.js +2 -0
  38. package/es/FullScreen/index.js +33 -0
  39. package/es/FullScreen/index.less +18 -0
  40. package/es/GridList/Demo.js +80 -0
  41. package/es/GridList/data.js +609 -0
  42. package/es/GridList/hook.js +270 -0
  43. package/es/GridList/index.js +44 -0
  44. package/es/GridList/index.less +8 -0
  45. package/es/GridList/interface.d.ts +59 -0
  46. package/es/GridList/utils.js +42 -0
  47. package/es/HightLevel/index.js +18 -0
  48. package/es/HightLevel/index.less +3 -0
  49. package/es/IconFont/index.js +54 -0
  50. package/es/ImageView/index.js +51 -0
  51. package/es/ImageView/index.less +11 -0
  52. package/es/InstanceHistory/index.js +7 -0
  53. package/es/LabelPlayer/111.png +0 -0
  54. package/es/LabelPlayer/demo.js +115 -0
  55. package/es/LabelPlayer/index.js +160 -0
  56. package/es/LabelPlayer/index.less +24 -0
  57. package/es/LabelValue/index.js +27 -0
  58. package/es/LabelValue/index.less +23 -0
  59. package/es/List/demo.js +23 -0
  60. package/es/List/index.js +28 -0
  61. package/es/List/index.less +20 -0
  62. package/es/ListWithSizeAnimate/demo.js +98 -0
  63. package/es/ListWithSizeAnimate/index.js +85 -0
  64. package/es/ListWithSizeAnimate/index.less +23 -0
  65. package/es/LoaderScript/index.js +34 -0
  66. package/es/LoaderScript/utils.js +179 -0
  67. package/es/Map/AMap.d.ts +7109 -0
  68. package/es/Map/BasicMap/AMapInstance.js +98 -0
  69. package/es/Map/BasicMap/LeafletInstance.js +111 -0
  70. package/es/Map/BasicMap/index.js +90 -0
  71. package/es/Map/BasicMap/index.less +29 -0
  72. package/es/Map/ClusterLayer/demo.js +18 -0
  73. package/es/Map/ClusterLayer/hook.js +123 -0
  74. package/es/Map/ClusterLayer/index.js +28 -0
  75. package/es/Map/ClusterLayer/index.less +29 -0
  76. package/es/Map/ClusterLayer/props.d.ts +8 -0
  77. package/es/Map/Config/index.js +48 -0
  78. package/es/Map/Config/utils.js +65 -0
  79. package/es/Map/Context/index.js +51 -0
  80. package/es/Map/FindPio/index.js +13 -0
  81. package/es/Map/FindPio/index.less +7 -0
  82. package/es/Map/InfoWindow/MakerLikeWindow.js +108 -0
  83. package/es/Map/InfoWindow/demo.js +70 -0
  84. package/es/Map/InfoWindow/index.js +62 -0
  85. package/es/Map/LevelCenter/DragMarker/index.js +42 -0
  86. package/es/Map/LevelCenter/demo.js +38 -0
  87. package/es/Map/LevelCenter/index.js +66 -0
  88. package/es/Map/LoaderMap/index.js +62 -0
  89. package/es/Map/MapDrawSelect/demo.js +71 -0
  90. package/es/Map/MapDrawSelect/index.js +56 -0
  91. package/es/Map/MouseTool/index.js +40 -0
  92. package/es/Map/MouseTool/useMouseTools.js +83 -0
  93. package/es/Map/ResetTools/index.js +57 -0
  94. package/es/Map/ResetTools/index.less +39 -0
  95. package/es/Map/SinglePoint/demo.js +14 -0
  96. package/es/Map/SinglePoint/index.js +52 -0
  97. package/es/Map/SinglePoint/index.less +41 -0
  98. package/es/Map/hook/useMapEvent.js +19 -0
  99. package/es/Map/hook/useMapType.js +12 -0
  100. package/es/Map/icon.js +10 -0
  101. package/es/Map/index.js +25 -0
  102. package/es/Map/interface.d.ts +74 -0
  103. package/es/Map/points.js +1 -0
  104. package/es/Map/useMarker/index.js +71 -0
  105. package/es/Map/withMap/index.js +10 -0
  106. package/es/Picture/component/DefaultRects/RectInfo.js +80 -0
  107. package/es/Picture/component/DefaultRects/index.js +52 -0
  108. package/es/Picture/component/DefaultRects/index.less +211 -0
  109. package/es/Picture/component/DefaultRects/utils.js +11 -0
  110. package/es/Picture/component/DrawRect/index.js +46 -0
  111. package/es/Picture/component/DrawRect/index.less +8 -0
  112. package/es/Picture/component/RectMenu/index.js +76 -0
  113. package/es/Picture/component/RectMenu/index.less +36 -0
  114. package/es/Picture/component/RectMenu/utils.js +19 -0
  115. package/es/Picture/component/Tools/index.js +73 -0
  116. package/es/Picture/component/Tools/index.less +49 -0
  117. package/es/Picture/component/WheelScale/index.js +27 -0
  118. package/es/Picture/demo.js +105 -0
  119. package/es/Picture/index.js +341 -0
  120. package/es/Picture/index.less +20 -0
  121. package/es/Picture/interface.d.ts +196 -0
  122. package/es/Picture/loadCaptureRectImage.js +99 -0
  123. package/es/Picture/useDraw.js +103 -0
  124. package/es/Picture/utils.js +143 -0
  125. package/es/Player/api/index.js +309 -0
  126. package/es/Player/context.js +24 -0
  127. package/es/Player/contraller_bar/bar.js +20 -0
  128. package/es/Player/contraller_bar/contraller_event.js +48 -0
  129. package/es/Player/contraller_bar/index.js +27 -0
  130. package/es/Player/contraller_bar/left_bar.js +83 -0
  131. package/es/Player/contraller_bar/right_bar.js +32 -0
  132. package/es/Player/contraller_bar/time.js +19 -0
  133. package/es/Player/contraller_bar/useBarStatus.js +43 -0
  134. package/es/Player/contraller_bar/volume.js +62 -0
  135. package/es/Player/demo.js +266 -0
  136. package/es/Player/empty.js +4 -0
  137. package/es/Player/event/errorEvent.js +88 -0
  138. package/es/Player/event/eventName.js +29 -0
  139. package/es/Player/event/index.js +205 -0
  140. package/es/Player/fps_play.js +83 -0
  141. package/es/Player/frontend_player.js +64 -0
  142. package/es/Player/frontend_timeline.js +132 -0
  143. package/es/Player/iconfont.js +16 -0
  144. package/es/Player/index.js +2 -0
  145. package/es/Player/live_heart.js +45 -0
  146. package/es/Player/message.js +133 -0
  147. package/es/Player/player.d.ts +233 -0
  148. package/es/Player/segment_player.js +228 -0
  149. package/es/Player/segment_timeline.js +173 -0
  150. package/es/Player/single_player.js +262 -0
  151. package/es/Player/style/bar.less +43 -0
  152. package/es/Player/style/iconfont.js +43 -0
  153. package/es/Player/style/index.less +34 -0
  154. package/es/Player/style/message.less +56 -0
  155. package/es/Player/style/slider.less +106 -0
  156. package/es/Player/style/timeline.less +117 -0
  157. package/es/Player/style/volume.less +24 -0
  158. package/es/Player/timeline.js +95 -0
  159. package/es/Player/util.js +189 -0
  160. package/es/PlayerExt/demo.js +154 -0
  161. package/es/PlayerExt/index.js +188 -0
  162. package/es/PlayerExt/index.less +10 -0
  163. package/es/Progress/index.d.ts +9 -0
  164. package/es/Progress/index.js +53 -0
  165. package/es/Progress/index.less +21 -0
  166. package/es/ROI/demo.js +16 -0
  167. package/es/ROI/index.js +54 -0
  168. package/es/ROI/index.less +33 -0
  169. package/es/RefDrawer/Footer.js +22 -0
  170. package/es/RefDrawer/demo.js +18 -0
  171. package/es/RefDrawer/index.js +71 -0
  172. package/es/RefModal/demo.js +18 -0
  173. package/es/RefModal/index.js +70 -0
  174. package/es/ScreenPlayer/Live.js +212 -0
  175. package/es/ScreenPlayer/LiveTools.js +151 -0
  176. package/es/ScreenPlayer/PlayerWithExt.js +231 -0
  177. package/es/ScreenPlayer/RatePick.js +29 -0
  178. package/es/ScreenPlayer/Record.js +442 -0
  179. package/es/ScreenPlayer/RecordTools.js +169 -0
  180. package/es/ScreenPlayer/ScreenSelect.js +46 -0
  181. package/es/ScreenPlayer/SegmentTimeLine.js +36 -0
  182. package/es/ScreenPlayer/TimeMode.js +26 -0
  183. package/es/ScreenPlayer/TimeSelect.js +88 -0
  184. package/es/ScreenPlayer/demo.js +21 -0
  185. package/es/ScreenPlayer/demo2.js +194 -0
  186. package/es/ScreenPlayer/index.js +9 -0
  187. package/es/ScreenPlayer/index.less +335 -0
  188. package/es/ScreenPlayer/interface.d.ts +216 -0
  189. package/es/ScreenPlayer/useTimeSlider.js +456 -0
  190. package/es/ScreenPlayer/useVideoFit.js +35 -0
  191. package/es/ScreenPlayer/utils.js +85 -0
  192. package/es/SegmentPlayer/index.js +2 -0
  193. package/es/Service/http.js +133 -0
  194. package/es/Service/index.js +11 -0
  195. package/es/Service/interface.d.ts +23 -0
  196. package/es/Service/middleware.js +22 -0
  197. package/es/SocketEmitter/eventEmitter.js +88 -0
  198. package/es/SocketEmitter/index.js +125 -0
  199. package/es/SocketEmitter/interface.d.ts +4 -0
  200. package/es/TableLayout/index.js +27 -0
  201. package/es/TableLayout/index.less +4 -0
  202. package/es/ThemeAntd/demo.js +81 -0
  203. package/es/ThemeAntd/demo.less +20 -0
  204. package/es/ThemeAntd/index.js +21 -0
  205. package/es/ThemeAntd/index.less +4 -0
  206. package/es/Timeout/index.js +65 -0
  207. package/es/bigNumberTransformCN/index.js +58 -0
  208. package/es/cache/index.js +94 -0
  209. package/es/copy/index.js +9 -0
  210. package/es/core.d.ts +0 -0
  211. package/es/getThemeStyle/index.js +5 -0
  212. package/es/index.js +62 -0
  213. package/es/likeGo/index.js +31 -0
  214. package/es/likeGoSync/index.js +10 -0
  215. package/es/logger/index.js +30 -0
  216. package/es/nextTick/index.js +3 -0
  217. package/es/recorder/demo.js +181 -0
  218. package/es/recorder/index.js +992 -0
  219. package/es/submidstr/index.js +14 -0
  220. package/es/treeHelper/index.js +188 -0
  221. package/es/typings.d.ts +2 -0
  222. package/es/useDrawROI/index.js +318 -0
  223. package/es/useEventEmitterHandle/index.js +17 -0
  224. package/es/useFullscreen/demo.js +43 -0
  225. package/es/useFullscreen/index.js +76 -0
  226. package/es/useHistory/index.js +9 -0
  227. package/es/useHistory/interface.d.ts +3 -0
  228. package/es/useInfiniteScroll/index.js +102 -0
  229. package/es/useRafInterval/index.js +70 -0
  230. package/es/useSimpleState/index.js +35 -0
  231. package/es/useVirtualList/index.js +136 -0
  232. package/es/utils.js +46 -0
  233. package/es/uuid/index.js +19 -0
  234. package/package.json +2 -3
@@ -0,0 +1,73 @@
1
+ import { Tooltip } from 'antd';
2
+ import React from 'react';
3
+ import FullScreen from "../../../FullScreen";
4
+ import IconFont from "../../../Player/iconfont";
5
+ import "./index.less";
6
+ function Tools(_ref) {
7
+ var scale = _ref.scale,
8
+ imgDownload = _ref.imgDownload,
9
+ setScale = _ref.setScale,
10
+ setRotate = _ref.setRotate,
11
+ containerEle = _ref.containerEle,
12
+ resetPicture = _ref.resetPicture;
13
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
14
+ className: "picture-tools"
15
+ }, /*#__PURE__*/React.createElement(Tooltip, {
16
+ placement: "left",
17
+ title: "\u590D\u4F4D"
18
+ }, /*#__PURE__*/React.createElement("div", {
19
+ onClick: resetPicture
20
+ }, /*#__PURE__*/React.createElement(IconFont, {
21
+ type: "lm-player-S_View_RotateMiddle"
22
+ }))), /*#__PURE__*/React.createElement(Tooltip, {
23
+ placement: "left",
24
+ title: "\u653E\u5927"
25
+ }, /*#__PURE__*/React.createElement("div", {
26
+ onClick: function onClick() {
27
+ return setScale(0.2);
28
+ },
29
+ className: scale === 3 ? 'disabled' : ''
30
+ }, /*#__PURE__*/React.createElement(IconFont, {
31
+ type: "lm-player-S_View_ZoomIn"
32
+ }))), /*#__PURE__*/React.createElement(Tooltip, {
33
+ placement: "left",
34
+ title: "\u7F29\u5C0F"
35
+ }, /*#__PURE__*/React.createElement("div", {
36
+ onClick: function onClick() {
37
+ return setScale(-0.2);
38
+ },
39
+ className: scale === 1 ? 'disabled' : ''
40
+ }, /*#__PURE__*/React.createElement(IconFont, {
41
+ type: "lm-player-S_View_ZoomOut"
42
+ }))), /*#__PURE__*/React.createElement(Tooltip, {
43
+ placement: "left",
44
+ title: "\u5411\u5DE6"
45
+ }, /*#__PURE__*/React.createElement("div", {
46
+ onClick: function onClick() {
47
+ return setRotate(-90);
48
+ }
49
+ }, /*#__PURE__*/React.createElement(IconFont, {
50
+ type: "lm-player-S_View_RotateLeft"
51
+ }))), /*#__PURE__*/React.createElement(Tooltip, {
52
+ placement: "left",
53
+ title: "\u5411\u53F3"
54
+ }, /*#__PURE__*/React.createElement("div", {
55
+ onClick: function onClick() {
56
+ return setRotate(90);
57
+ }
58
+ }, /*#__PURE__*/React.createElement(IconFont, {
59
+ type: "lm-player-S_View_RotateRight"
60
+ })))), /*#__PURE__*/React.createElement("div", {
61
+ className: "picture-actions"
62
+ }, imgDownload && /*#__PURE__*/React.createElement("div", {
63
+ onClick: imgDownload
64
+ }, /*#__PURE__*/React.createElement(IconFont, {
65
+ type: "lm-player-S_Edit_LoadDown"
66
+ })), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FullScreen, {
67
+ className: "footer_window",
68
+ getContainer: function getContainer() {
69
+ return containerEle;
70
+ }
71
+ }))));
72
+ }
73
+ export default Tools;
@@ -0,0 +1,49 @@
1
+ .picture-tools {
2
+ position: absolute;
3
+ right: 10px;
4
+ bottom: 10px;
5
+ background: #fff;
6
+ box-shadow: 0 2px 5px 0 rgb(0 0 0 / 30%);
7
+
8
+ &.actions-change-rotate {
9
+ bottom: 150px;
10
+ }
11
+
12
+ & > div {
13
+ width: 30px;
14
+ height: 25px;
15
+ line-height: 25px;
16
+ text-align: center;
17
+ cursor: pointer;
18
+
19
+ &.disabled {
20
+ color: #999;
21
+ cursor: not-allowed;
22
+
23
+ .anticon {
24
+ color: #999;
25
+ }
26
+ }
27
+ }
28
+ }
29
+
30
+ .picture-actions {
31
+ position: absolute;
32
+ top: 8px;
33
+ right: 8px;
34
+
35
+ & > div {
36
+ float: left;
37
+ width: 28px;
38
+ height: 28px;
39
+ margin-left: 4px;
40
+ line-height: 28px;
41
+ text-align: center;
42
+ cursor: pointer;
43
+ background: #fff;
44
+ }
45
+
46
+ .tools-screen-layer .anticon {
47
+ padding-right: 0;
48
+ }
49
+ }
@@ -0,0 +1,27 @@
1
+ import React, { useCallback, useEffect } from 'react';
2
+ function WheelScale(_ref) {
3
+ var dom = _ref.dom,
4
+ setScale = _ref.setScale;
5
+ var onWheel = useCallback(function (e) {
6
+ if (e.ctrlKey || e.metaKey) {
7
+ e.preventDefault();
8
+ e.stopPropagation();
9
+ setScale(e.deltaY > 0 ? -0.2 : 0.2);
10
+ }
11
+ }, [setScale]);
12
+
13
+ //滚轮缩放
14
+ useEffect(function () {
15
+ if (!dom) {
16
+ return undefined;
17
+ }
18
+ dom.addEventListener('wheel', onWheel, {
19
+ passive: false
20
+ });
21
+ return function () {
22
+ return dom.removeEventListener('wheel', onWheel);
23
+ };
24
+ }, [dom, onWheel]);
25
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
26
+ }
27
+ export default WheelScale;
@@ -0,0 +1,105 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ 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."); }
3
+ 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); }
4
+ 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; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { Button, ConfigProvider, Modal } from 'antd';
8
+ import React from 'react';
9
+ import Picture from '.';
10
+ import { useSimpleState } from '..';
11
+ export default function App() {
12
+ var _useSimpleState = useSimpleState({
13
+ open: false,
14
+ open2: false
15
+ }),
16
+ _useSimpleState2 = _slicedToArray(_useSimpleState, 2),
17
+ state = _useSimpleState2[0],
18
+ updateState = _useSimpleState2[1];
19
+ return /*#__PURE__*/React.createElement(ConfigProvider, {
20
+ prefixCls: "cloudapp"
21
+ }, /*#__PURE__*/React.createElement("div", {
22
+ style: {
23
+ width: 600,
24
+ height: 300,
25
+ background: '#000'
26
+ }
27
+ }, /*#__PURE__*/React.createElement(Picture, {
28
+ onClickRect: console.log,
29
+ onMenuClick: console.log,
30
+ menus: [{
31
+ title: '菜单1',
32
+ pathname: '/',
33
+ icon: ''
34
+ }]
35
+ // imagePath="http://192.168.100.246:5463/oss/v1/100004008/objects/638da35805f5f0a8101021f9?client_token=100004008_0_1670313176_9a47a8459c120d977904c9feb2354a7e"
36
+ ,
37
+ isOpenSelect: state.open,
38
+ imagePath: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fitem%2F201503%2F16%2F20150316082631_YZ28f.jpeg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1674876231&t=0824d5e8365bc9bcbe0484b5dbffff03"
39
+ // imagePath="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F2018-08-07%2F5b69694c2e398.jpg&refer=http%3A%2F%2Fpic1.win4000.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1674875813&t=f1f2c44a50e5f3ddae91ba223f5eb99b"
40
+ ,
41
+ rects: [{
42
+ type: 'face',
43
+ rect: [920.0, 843.0, 96.0, 94.0],
44
+ needExpand: true
45
+ }]
46
+ }, function () {
47
+ return /*#__PURE__*/React.createElement(Button, {
48
+ onClick: function onClick() {
49
+ return updateState({
50
+ open: true
51
+ });
52
+ }
53
+ }, "\u622A\u56FE");
54
+ })), /*#__PURE__*/React.createElement("div", {
55
+ style: {
56
+ width: 800,
57
+ height: 600,
58
+ background: '#000',
59
+ marginTop: 40
60
+ }
61
+ }, /*#__PURE__*/React.createElement(Button, {
62
+ onClick: function onClick() {
63
+ return updateState({
64
+ open2: true
65
+ });
66
+ }
67
+ }, "\u6253\u5F00"), /*#__PURE__*/React.createElement(Modal, {
68
+ title: "modal",
69
+ open: state.open2,
70
+ onCancel: function onCancel() {
71
+ return updateState({
72
+ open2: false
73
+ });
74
+ },
75
+ width: 844,
76
+ destroyOnClose: true,
77
+ forceRender: true
78
+ }, /*#__PURE__*/React.createElement("div", {
79
+ style: {
80
+ width: 800,
81
+ height: 600,
82
+ backgroundColor: '#000'
83
+ }
84
+ }, /*#__PURE__*/React.createElement(Picture, {
85
+ imagePath: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F202106%2F09%2F20210609081952_51ef5.thumb.1000_0.jpg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1673661389&t=906e24291130712565842eb7cf21e277",
86
+ isOpenSelect: false,
87
+ rects: [{
88
+ type: 'face',
89
+ rect: [698, 274, 23, 23],
90
+ needExpand: true
91
+ }, {
92
+ type: 'face',
93
+ rect: [754.0, 268.0, 23.0, 23.0],
94
+ needExpand: true
95
+ }, {
96
+ type: 'face',
97
+ rect: [430.0, 421.0, 49.0, 49.0],
98
+ needExpand: true
99
+ }, {
100
+ type: 'face',
101
+ rect: [240.0, 468.0, 41.0, 36.0],
102
+ needExpand: true
103
+ }]
104
+ })))));
105
+ }
@@ -0,0 +1,341 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["className", "width", "height", "minHeight", "disabledDrag", "imagePath", "rects", "isOpenSelect", "disabledDrawMenu", "menus", "hasTool", "fullScreenEle"];
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
+ 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."); }
10
+ 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); }
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
16
+ import { useMemoizedFn, useSize, useUpdateEffect, useUpdateLayoutEffect } from 'ahooks';
17
+ import React, { useEffect, useMemo, useRef } from 'react';
18
+ import DomMove from "../DomMove";
19
+ import useSimpleState from "../useSimpleState";
20
+ import DefaultRects from "./component/DefaultRects";
21
+ import DrawRect from "./component/DrawRect";
22
+ import Tools from "./component/Tools";
23
+ import WheelScale from "./component/WheelScale";
24
+ import { getRectImagePath } from "./loadCaptureRectImage";
25
+ import useDraw from "./useDraw";
26
+ import { computedRectScale, customContextMenu, getImgSize } from "./utils";
27
+ import "./index.less";
28
+ function Picture(_ref) {
29
+ var _layoutRef$current;
30
+ var _ref$className = _ref.className,
31
+ className = _ref$className === void 0 ? '' : _ref$className,
32
+ _ref$width = _ref.width,
33
+ width = _ref$width === void 0 ? '100%' : _ref$width,
34
+ _ref$height = _ref.height,
35
+ height = _ref$height === void 0 ? '100%' : _ref$height,
36
+ _ref$minHeight = _ref.minHeight,
37
+ minHeight = _ref$minHeight === void 0 ? 300 : _ref$minHeight,
38
+ _ref$disabledDrag = _ref.disabledDrag,
39
+ disabledDrag = _ref$disabledDrag === void 0 ? false : _ref$disabledDrag,
40
+ imagePath = _ref.imagePath,
41
+ _ref$rects = _ref.rects,
42
+ rects = _ref$rects === void 0 ? [] : _ref$rects,
43
+ _ref$isOpenSelect = _ref.isOpenSelect,
44
+ isOpenSelect = _ref$isOpenSelect === void 0 ? false : _ref$isOpenSelect,
45
+ _ref$disabledDrawMenu = _ref.disabledDrawMenu,
46
+ disabledDrawMenu = _ref$disabledDrawMenu === void 0 ? false : _ref$disabledDrawMenu,
47
+ _ref$menus = _ref.menus,
48
+ menus = _ref$menus === void 0 ? [] : _ref$menus,
49
+ _ref$hasTool = _ref.hasTool,
50
+ hasTool = _ref$hasTool === void 0 ? true : _ref$hasTool,
51
+ fullScreenEle = _ref.fullScreenEle,
52
+ props = _objectWithoutProperties(_ref, _excluded);
53
+ var _useMemo = useMemo(function () {
54
+ return props;
55
+ }, [props]),
56
+ imgDownload = _useMemo.imgDownload,
57
+ onClickRect = _useMemo.onClickRect,
58
+ onMenuClick = _useMemo.onMenuClick,
59
+ children = _useMemo.children;
60
+ var _useSimpleState = useSimpleState({
61
+ x: 0,
62
+ y: 0,
63
+ rotate: 0,
64
+ scale: 1,
65
+ baseXOrY: 'x',
66
+ forceUpdateKey: Date.now(),
67
+ loadedTime: 0,
68
+ fullScreenStatus: false,
69
+ localUrl: '',
70
+ offset: [0, 0],
71
+ size: ['auto', 'auto']
72
+ }),
73
+ _useSimpleState2 = _slicedToArray(_useSimpleState, 3),
74
+ state = _useSimpleState2[0],
75
+ updateState = _useSimpleState2[1],
76
+ setState = _useSimpleState2[2];
77
+ var layoutRef = useRef(null);
78
+ var moveActionRef = useRef(null);
79
+ var domImgRef = useRef(null);
80
+ var size = useSize(layoutRef);
81
+ useEffect(function () {
82
+ if (!imagePath) {
83
+ return undefined;
84
+ }
85
+ var localUrl;
86
+ fetch(imagePath).then(function (res) {
87
+ return res.blob();
88
+ }).then(function (blob) {
89
+ localUrl = URL.createObjectURL(blob);
90
+ updateState({
91
+ localUrl: localUrl
92
+ });
93
+ }).catch(function (e) {
94
+ console.error(e);
95
+ });
96
+ return function () {
97
+ return URL.revokeObjectURL(localUrl);
98
+ };
99
+ }, [imagePath]);
100
+
101
+ // draw hooks
102
+ var _useDraw = useDraw((_layoutRef$current = layoutRef.current) === null || _layoutRef$current === void 0 ? void 0 : _layoutRef$current.querySelector('.picture-overlay'), isOpenSelect),
103
+ _useDraw2 = _slicedToArray(_useDraw, 2),
104
+ selectArea = _useDraw2[0],
105
+ isEnd = _useDraw2[1];
106
+
107
+ // init loaded
108
+ var loadImageSuccess = useMemoizedFn(function () {
109
+ if (!state.localUrl || !layoutRef.current || !domImgRef.current) {
110
+ return;
111
+ }
112
+ var _getImgSize = getImgSize(layoutRef.current, domImgRef.current),
113
+ x = _getImgSize.x,
114
+ y = _getImgSize.y,
115
+ size = _getImgSize.size,
116
+ baseXOrY = _getImgSize.baseXOrY;
117
+ var moveObj = moveActionRef.current;
118
+ moveObj.updatePosition({
119
+ x: x,
120
+ y: y
121
+ });
122
+ setState(function (old) {
123
+ return _objectSpread(_objectSpread({}, old), {}, {
124
+ x: x,
125
+ y: y,
126
+ offset: [x, y],
127
+ baseXOrY: baseXOrY,
128
+ size: size,
129
+ loadedTime: Date.now()
130
+ });
131
+ });
132
+ });
133
+
134
+ // 更新重绘
135
+ useUpdateLayoutEffect(function () {
136
+ loadImageSuccess();
137
+ }, [size]);
138
+
139
+ // 更新重绘
140
+ useUpdateLayoutEffect(function () {
141
+ // Rects重新计算
142
+ updateState({
143
+ forceUpdateKey: Date.now()
144
+ });
145
+ }, [state.loadedTime]);
146
+
147
+ /**
148
+ * 设置图片缩放
149
+ */
150
+ var setScale = useMemoizedFn(function (changeValue) {
151
+ var currentValue = state.scale;
152
+ if (currentValue === 3 && changeValue > 0) {
153
+ return;
154
+ }
155
+ if (currentValue === 1 && changeValue < 0) {
156
+ return;
157
+ }
158
+ var scale = currentValue + changeValue;
159
+ if (scale > 3) {
160
+ scale = 3;
161
+ }
162
+ if (scale < 1) {
163
+ scale = 1;
164
+ }
165
+ setState(function (old) {
166
+ return _objectSpread(_objectSpread({}, old), {}, {
167
+ scale: scale
168
+ });
169
+ });
170
+ });
171
+
172
+ /**
173
+ * 设置图谱旋转
174
+ */
175
+ var setRotate = useMemoizedFn(function (changeValue) {
176
+ var currentValue = state.rotate;
177
+ setState(function (old) {
178
+ return _objectSpread(_objectSpread({}, old), {}, {
179
+ rotate: currentValue + changeValue
180
+ });
181
+ });
182
+ });
183
+
184
+ /**
185
+ * 重置图片位置
186
+ */
187
+ var resetPicture = useMemoizedFn(function (event) {
188
+ event.stopPropagation();
189
+ var moveObj = moveActionRef.current;
190
+ setState(function (old) {
191
+ return _objectSpread(_objectSpread({}, old), {}, {
192
+ scale: 1,
193
+ rotate: 0
194
+ });
195
+ });
196
+ moveObj.updatePosition({
197
+ x: state.offset[0],
198
+ y: state.offset[1]
199
+ });
200
+ });
201
+
202
+ /**
203
+ * 拖拽更新位置
204
+ */
205
+ var onDragChange = useMemoizedFn(function (_ref2) {
206
+ var x = _ref2.x,
207
+ y = _ref2.y;
208
+ return setState(function (old) {
209
+ return _objectSpread(_objectSpread({}, old), {}, {
210
+ x: x,
211
+ y: y
212
+ });
213
+ });
214
+ });
215
+
216
+ /**
217
+ * 拖拽结束更新位置,计算边界
218
+ */
219
+ var onDragEnd = useMemoizedFn(function (_, currrentPosition) {
220
+ if (!layoutRef.current || !domImgRef.current) {
221
+ return undefined;
222
+ }
223
+ var _ref3 = size || {
224
+ width: 0,
225
+ height: 0
226
+ },
227
+ width = _ref3.width,
228
+ height = _ref3.height;
229
+ var imgw = domImgRef.current.width * state.scale;
230
+ var imgh = domImgRef.current.height * state.scale;
231
+ var scaleW = imgw - domImgRef.current.width;
232
+ var scaleH = imgh - domImgRef.current.height;
233
+
234
+ // 校验x,y范围,超出回弹
235
+ var maxX = imgw < width ? width - imgw + scaleW / 2 : scaleW / 2;
236
+ var maxY = imgh < height ? height - imgh + scaleH / 2 : scaleH / 2;
237
+ var minX = imgw < width ? scaleW / 2 : -(imgw - width) / 2 + state.offset[0];
238
+ var minY = imgh < height ? scaleH / 2 : -(imgh - height) / 2 + state.offset[1];
239
+ var x = currrentPosition.x > maxX ? maxX : currrentPosition.x < minX ? minX : currrentPosition.x;
240
+ var y = currrentPosition.y > maxY ? maxY : currrentPosition.y < minY ? minY : currrentPosition.y;
241
+ var moveObj = moveActionRef.current;
242
+ moveObj.updatePosition({
243
+ x: x,
244
+ y: y
245
+ });
246
+ });
247
+
248
+ /**
249
+ * 获取结构化的小图(base64)
250
+ */
251
+ var getRectImage = useMemoizedFn(function (rect) {
252
+ return getRectImagePath(domImgRef.current, rect);
253
+ });
254
+
255
+ // eslint-disable-next-line react-hooks/exhaustive-deps
256
+ var scaleRects = useMemo(function () {
257
+ return computedRectScale({
258
+ domImg: domImgRef.current,
259
+ rects: rects !== null && rects !== void 0 ? rects : []
260
+ });
261
+ }, [rects, state.forceUpdateKey]);
262
+ var isEmpty = useMemo(function () {
263
+ return selectArea.includes(0);
264
+ }, [selectArea]);
265
+ var renderOptions = {
266
+ isEnd: isEnd,
267
+ isOpenSelect: isOpenSelect,
268
+ selectArea: selectArea,
269
+ getRectImage: getRectImage,
270
+ containerEle: layoutRef.current
271
+ };
272
+ useUpdateEffect(function () {
273
+ if (isOpenSelect) {
274
+ var moveObj = moveActionRef.current;
275
+ moveObj.updatePosition({
276
+ x: state.offset[0],
277
+ y: state.offset[1]
278
+ });
279
+ updateState({
280
+ scale: 1,
281
+ rotate: 0,
282
+ x: state.offset[0],
283
+ y: state.offset[1]
284
+ });
285
+ }
286
+ }, [isOpenSelect]);
287
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
288
+ className: "picture-view-layout ".concat(className),
289
+ style: {
290
+ width: width,
291
+ height: height,
292
+ minHeight: minHeight
293
+ },
294
+ ref: layoutRef,
295
+ onContextMenu: customContextMenu
296
+ }, /*#__PURE__*/React.createElement(DomMove, {
297
+ className: "picture-move-layout",
298
+ disabled: isOpenSelect || disabledDrag,
299
+ ref: moveActionRef,
300
+ onDragChange: onDragChange,
301
+ onDragEnd: onDragEnd
302
+ }, /*#__PURE__*/React.createElement("div", {
303
+ className: "picture-overlay",
304
+ style: {
305
+ transform: "scale(".concat(state.scale, ") rotate(").concat(state.rotate, "deg)")
306
+ }
307
+ }, /*#__PURE__*/React.createElement("img", {
308
+ ref: domImgRef,
309
+ draggable: false,
310
+ src: state.localUrl,
311
+ style: {
312
+ width: state.size[0],
313
+ height: state.size[1]
314
+ },
315
+ "data-src": imagePath,
316
+ onLoad: loadImageSuccess
317
+ }), !isEmpty ? /*#__PURE__*/React.createElement(DrawRect, {
318
+ rect: selectArea,
319
+ onMenuClick: onMenuClick,
320
+ getRectImage: getRectImage,
321
+ menus: menus !== null && menus !== void 0 ? menus : [],
322
+ canRenderMenu: isEnd && !disabledDrawMenu && menus && menus.length > 0,
323
+ containerDom: layoutRef.current
324
+ }) : !isOpenSelect ? /*#__PURE__*/React.createElement(DefaultRects, {
325
+ rects: scaleRects,
326
+ onClickRect: onClickRect,
327
+ getRectImage: getRectImage,
328
+ containerDom: layoutRef.current
329
+ }) : null)), hasTool && /*#__PURE__*/React.createElement(Tools, {
330
+ setScale: setScale,
331
+ setRotate: setRotate,
332
+ scale: state.scale,
333
+ containerEle: fullScreenEle !== null && fullScreenEle !== void 0 ? fullScreenEle : layoutRef.current,
334
+ resetPicture: resetPicture,
335
+ imgDownload: imgDownload
336
+ }), /*#__PURE__*/React.createElement(WheelScale, {
337
+ setScale: setScale,
338
+ dom: layoutRef.current
339
+ })), children === null || children === void 0 ? void 0 : children(renderOptions));
340
+ }
341
+ export default Picture;
@@ -0,0 +1,20 @@
1
+ .picture-view-layout {
2
+ position: relative;
3
+ min-height: 300px;
4
+ overflow: hidden;
5
+ user-select: none;
6
+
7
+ .picture-move-layout {
8
+ & > div {
9
+ width: max-content;
10
+ height: max-content;
11
+ transition: all .3s;
12
+ overflow: hidden;
13
+
14
+ img {
15
+ max-width: 100%;
16
+ max-height: 100%;
17
+ }
18
+ }
19
+ }
20
+ }