@cloud-app-dev/vidc 2.0.0-alpha.1 → 2.0.0-alpha.5

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 (254) hide show
  1. package/.umirc.ts +1 -2
  2. package/es/Api/index.d.ts +3 -4
  3. package/es/Api/index.js +7 -8
  4. package/es/AppRedirect/index.css +0 -0
  5. package/es/AppRedirect/index.d.ts +16 -0
  6. package/es/AppRedirect/index.js +38 -0
  7. package/es/AppRoute/Render.d.ts +23 -0
  8. package/es/AppRoute/Render.js +111 -0
  9. package/es/AppRoute/Rendered.d.ts +4 -0
  10. package/es/AppRoute/Rendered.js +11 -0
  11. package/es/AppRoute/index.css +0 -0
  12. package/es/AppRoute/index.d.ts +14 -0
  13. package/es/AppRoute/index.js +106 -0
  14. package/es/AppRoute/interface.d.ts +18 -0
  15. package/es/AppRoute/utils.d.ts +1 -0
  16. package/es/AppRoute/utils.js +28 -0
  17. package/es/Auth/index.d.ts +8 -0
  18. package/es/Auth/index.js +17 -0
  19. package/es/AutoExit/index.js +8 -5
  20. package/es/CheckGroupFixed/index.css +49 -0
  21. package/es/CheckGroupFixed/index.d.ts +17 -0
  22. package/es/CheckGroupFixed/index.js +146 -0
  23. package/es/Config/index.js +27 -4
  24. package/es/Config/interface.d.ts +13 -3
  25. package/es/Config/utils.d.ts +9 -2
  26. package/es/ConfigContext/index.d.ts +3 -0
  27. package/es/ContentBox/BetweenBox/index.css +5 -0
  28. package/es/ContentBox/BetweenBox/index.d.ts +12 -0
  29. package/es/ContentBox/BetweenBox/index.js +24 -0
  30. package/es/ContentBox/InfoBox/index.css +23 -0
  31. package/es/ContentBox/InfoBox/index.d.ts +12 -0
  32. package/es/ContentBox/InfoBox/index.js +26 -0
  33. package/es/ContentBox/TwoColumnBox/index.css +77 -0
  34. package/es/ContentBox/TwoColumnBox/index.d.ts +10 -0
  35. package/es/ContentBox/TwoColumnBox/index.js +50 -0
  36. package/es/ContentBox/deps/content-grid.d.ts +9 -0
  37. package/es/ContentBox/deps/content-grid.js +9 -0
  38. package/es/ContentBox/deps/grid-factory.d.ts +10 -0
  39. package/es/ContentBox/deps/grid-factory.js +72 -0
  40. package/es/ContentBox/deps/simple-grid.d.ts +9 -0
  41. package/es/ContentBox/deps/simple-grid.js +8 -0
  42. package/es/ContentBox/index.css +9 -0
  43. package/es/ContentBox/index.d.ts +14 -0
  44. package/es/ContentBox/index.js +28 -0
  45. package/es/DeviceIcon/icon.js +5 -5
  46. package/es/DeviceIcon/index.js +2 -2
  47. package/es/DeviceList/index.d.ts +1 -1
  48. package/es/DeviceList/index.js +4 -4
  49. package/es/DeviceSelect/index.js +2 -2
  50. package/es/Dict/cache.d.ts +3 -0
  51. package/es/Dict/cache.js +21 -0
  52. package/es/Dict/desc.d.ts +64 -0
  53. package/es/Dict/desc.js +162 -0
  54. package/es/Dict/device.d.ts +28 -0
  55. package/es/Dict/device.js +117 -0
  56. package/es/Dict/hook.d.ts +4 -0
  57. package/es/Dict/hook.js +114 -0
  58. package/es/Dict/index.d.ts +13 -0
  59. package/es/Dict/index.js +14 -0
  60. package/es/Dict/interface.d.ts +16 -0
  61. package/es/Dict/utils.d.ts +11 -0
  62. package/es/Dict/utils.js +51 -0
  63. package/es/Drag/DragAndDropItem.d.ts +4 -0
  64. package/es/Drag/DragAndDropItem.js +145 -0
  65. package/es/Drag/DropItem.d.ts +4 -0
  66. package/es/Drag/DropItem.js +54 -0
  67. package/es/Drag/index.css +0 -0
  68. package/es/Drag/index.d.ts +7 -0
  69. package/es/Drag/index.js +7 -0
  70. package/es/Drag/interface.d.ts +16 -0
  71. package/es/Drawer/Demo.d.ts +3 -0
  72. package/es/Drawer/Demo.js +52 -0
  73. package/es/Drawer/Footer.d.ts +4 -0
  74. package/es/Drawer/Footer.js +26 -0
  75. package/es/Drawer/index.css +39 -0
  76. package/es/Drawer/index.d.ts +12 -0
  77. package/es/Drawer/index.js +41 -0
  78. package/es/Drawer/interface.d.ts +191 -0
  79. package/es/DynamicDeviceList/CheckExt.js +3 -3
  80. package/es/DynamicDeviceList/index.js +2 -2
  81. package/es/DynamicDeviceList/utils.js +2 -2
  82. package/es/DynamicList/demo.d.ts +2 -0
  83. package/es/DynamicList/demo.js +71 -0
  84. package/es/DynamicList/index.css +7 -0
  85. package/es/DynamicList/index.d.ts +31 -0
  86. package/es/DynamicList/index.js +132 -0
  87. package/es/FullScreen/index.css +16 -0
  88. package/es/FullScreen/index.d.ts +10 -0
  89. package/es/FullScreen/index.js +68 -0
  90. package/es/HightLevel/index.css +3 -0
  91. package/es/HightLevel/index.d.ts +9 -0
  92. package/es/HightLevel/index.js +22 -0
  93. package/es/IconFont/index.css +0 -0
  94. package/es/IconFont/index.d.ts +13 -0
  95. package/es/IconFont/index.js +58 -0
  96. package/es/ImageView/index.css +6 -0
  97. package/es/ImageView/index.d.ts +17 -0
  98. package/es/ImageView/index.js +58 -0
  99. package/es/InitialConfig/index.js +7 -11
  100. package/es/InitialConfig/utils.d.ts +1 -1
  101. package/es/InitialConfig/utils.js +8 -31
  102. package/es/InitialRequest/index.d.ts +1 -1
  103. package/es/InitialRequest/index.js +4 -4
  104. package/es/InitialRequest/utils.js +1 -1
  105. package/es/Input/index.css +8 -0
  106. package/es/Input/index.d.ts +18 -0
  107. package/es/Input/index.js +75 -0
  108. package/es/LabelValue/index.css +18 -0
  109. package/es/LabelValue/index.d.ts +23 -0
  110. package/es/LabelValue/index.js +32 -0
  111. package/es/List/CheckExt.d.ts +10 -0
  112. package/es/List/CheckExt.js +28 -0
  113. package/es/List/index.css +62 -6
  114. package/es/List/index.d.ts +73 -11
  115. package/es/List/index.js +162 -36
  116. package/es/List/renderItem.d.ts +20 -0
  117. package/es/List/renderItem.js +68 -0
  118. package/es/List/utils.d.ts +5 -0
  119. package/es/List/utils.js +18 -0
  120. package/es/ListExt/index.css +9 -0
  121. package/es/ListExt/index.d.ts +19 -0
  122. package/es/ListExt/index.js +44 -0
  123. package/es/LoaderApp/index.css +3 -0
  124. package/es/LoaderApp/index.d.ts +31 -0
  125. package/es/LoaderApp/index.js +132 -0
  126. package/es/LoaderApp/interface.d.ts +6 -0
  127. package/es/LoaderApp/loader.d.ts +20 -0
  128. package/es/LoaderApp/loader.js +86 -0
  129. package/es/LoaderApp/utils.d.ts +13 -0
  130. package/es/LoaderApp/utils.js +126 -0
  131. package/es/LoaderScript/index.d.ts +26 -0
  132. package/es/LoaderScript/index.js +127 -0
  133. package/es/LoaderScript/interface.d.ts +26 -0
  134. package/es/LoaderScript/utils.d.ts +12 -0
  135. package/es/LoaderScript/utils.js +110 -0
  136. package/es/Modal/index.css +43 -0
  137. package/es/Modal/index.d.ts +17 -0
  138. package/es/Modal/index.js +34 -0
  139. package/es/Modal/interface.d.ts +339 -0
  140. package/es/Picture/component/DefaultRects/RectInfo.d.ts +7 -0
  141. package/es/Picture/component/DefaultRects/RectInfo.js +94 -0
  142. package/es/Picture/component/DefaultRects/index.css +247 -0
  143. package/es/Picture/component/DefaultRects/index.d.ts +12 -0
  144. package/es/Picture/component/DefaultRects/index.js +47 -0
  145. package/es/Picture/component/DefaultRects/utils.d.ts +2 -0
  146. package/es/Picture/component/DefaultRects/utils.js +11 -0
  147. package/es/Picture/component/DrawRect/index.css +8 -0
  148. package/es/Picture/component/DrawRect/index.d.ts +14 -0
  149. package/es/Picture/component/DrawRect/index.js +41 -0
  150. package/es/Picture/component/MoveContent/index.css +0 -0
  151. package/es/Picture/component/MoveContent/index.d.ts +39 -0
  152. package/es/Picture/component/MoveContent/index.js +240 -0
  153. package/es/Picture/component/MoveContent/utils.d.ts +4 -0
  154. package/es/Picture/component/MoveContent/utils.js +19 -0
  155. package/es/Picture/component/RectMenu/index.css +31 -0
  156. package/es/Picture/component/RectMenu/index.d.ts +13 -0
  157. package/es/Picture/component/RectMenu/index.js +81 -0
  158. package/es/Picture/component/RectMenu/utils.d.ts +12 -0
  159. package/es/Picture/component/RectMenu/utils.js +22 -0
  160. package/es/Picture/component/Tools/index.css +42 -0
  161. package/es/Picture/component/Tools/index.d.ts +13 -0
  162. package/es/Picture/component/Tools/index.js +83 -0
  163. package/es/Picture/component/WheelScale/index.d.ts +6 -0
  164. package/es/Picture/component/WheelScale/index.js +29 -0
  165. package/es/Picture/dragBound.d.ts +5 -0
  166. package/es/Picture/dragBound.js +77 -0
  167. package/es/Picture/index.css +12 -0
  168. package/es/Picture/index.d.ts +16 -0
  169. package/es/Picture/index.js +344 -0
  170. package/es/Picture/interface.d.ts +67 -0
  171. package/es/Picture/loadCaptureRectImage.d.ts +8 -0
  172. package/es/Picture/loadCaptureRectImage.js +119 -0
  173. package/es/Picture/useDraw.d.ts +1 -0
  174. package/es/Picture/useDraw.js +136 -0
  175. package/es/Picture/utils.d.ts +22 -0
  176. package/es/Picture/utils.js +90 -0
  177. package/es/Progress/index.css +20 -0
  178. package/es/Progress/index.d.ts +11 -0
  179. package/es/Progress/index.js +68 -0
  180. package/es/RefDrawer/index.js +4 -5
  181. package/es/RefModal/index.js +4 -5
  182. package/es/ScrollList/index.css +73 -0
  183. package/es/ScrollList/index.d.ts +24 -0
  184. package/es/ScrollList/index.js +261 -0
  185. package/es/ScrollList/utils.js +84 -0
  186. package/es/Service/http.js +0 -17
  187. package/es/TableLayout/index.css +4 -0
  188. package/es/TableLayout/index.d.ts +10 -0
  189. package/es/TableLayout/index.js +64 -0
  190. package/es/ThemeAntd/index.css +501 -0
  191. package/es/ThemeAntd/index.d.ts +7 -0
  192. package/es/ThemeAntd/index.js +6 -0
  193. package/es/ThemeAntd/style/button.css +46 -0
  194. package/es/ThemeAntd/style/checkbox.css +64 -0
  195. package/es/ThemeAntd/style/form.css +10 -0
  196. package/es/ThemeAntd/style/input.css +58 -0
  197. package/es/ThemeAntd/style/pagination.css +44 -0
  198. package/es/ThemeAntd/style/picker.css +86 -0
  199. package/es/ThemeAntd/style/popover.css +3 -0
  200. package/es/ThemeAntd/style/radio.css +71 -0
  201. package/es/ThemeAntd/style/scrollbar.css +19 -0
  202. package/es/ThemeAntd/style/select.css +57 -0
  203. package/es/ThemeAntd/style/table.css +36 -0
  204. package/es/ThemeAntd/style/tree.css +4 -0
  205. package/es/Tree/demo.d.ts +2 -0
  206. package/es/Tree/demo.js +69 -0
  207. package/es/Tree/index.css +64 -0
  208. package/es/Tree/index.d.ts +24 -0
  209. package/es/Tree/index.js +83 -0
  210. package/es/TreeMode/index.d.ts +1 -1
  211. package/es/TreeMode/index.js +6 -6
  212. package/es/TreeTitle/index.js +2 -2
  213. package/es/UserSelect/index.d.ts +3 -3
  214. package/es/UserSelect/index.js +13 -15
  215. package/es/VList/index.css +4 -0
  216. package/es/VList/index.d.ts +16 -0
  217. package/es/VList/index.js +56 -0
  218. package/es/VList/utils.d.ts +10 -0
  219. package/es/VList/utils.js +17 -0
  220. package/es/WorkerFlow/Form/Condition.js +6 -6
  221. package/es/WorkerFlow/Form/EmptyUserSet.js +2 -2
  222. package/es/WorkerFlow/Form/FormAuth.js +2 -2
  223. package/es/WorkerFlow/Form/GroupSelect.js +2 -2
  224. package/es/WorkerFlow/Form/GroupSelectModalContent.js +5 -5
  225. package/es/WorkerFlow/Form/LevelGroupSelect.js +3 -3
  226. package/es/WorkerFlow/Form/UserAndGroupSelect.js +2 -2
  227. package/es/WorkerFlow/Form/UserSelect.js +2 -2
  228. package/es/WorkerFlow/Form/UserSelectModalContent.js +3 -4
  229. package/es/WorkerFlow/Form/UserSet.js +2 -2
  230. package/es/WorkerFlow/Nodes/Add.js +2 -3
  231. package/es/WorkerFlow/Nodes/AddOption.js +2 -2
  232. package/es/WorkerFlow/Nodes/Approver.js +2 -2
  233. package/es/WorkerFlow/Nodes/Condition.js +2 -2
  234. package/es/WorkerFlow/Nodes/Handle.js +2 -2
  235. package/es/WorkerFlow/Nodes/Notifier.js +2 -2
  236. package/es/WorkerFlow/Nodes/TitleElement.js +5 -8
  237. package/es/WorkerFlow/index.js +2 -3
  238. package/es/core.d.ts +27 -0
  239. package/es/index.d.ts +31 -0
  240. package/es/index.js +31 -0
  241. package/es/useChangeEffect/index.d.ts +3 -0
  242. package/es/useChangeEffect/index.js +32 -0
  243. package/es/useDrawer/index.d.ts +14 -0
  244. package/es/useDrawer/index.js +90 -0
  245. package/es/useHistory/index.css +0 -0
  246. package/es/useHistory/index.d.ts +3 -0
  247. package/es/useHistory/index.js +14 -0
  248. package/es/useHttp/index.d.ts +8 -0
  249. package/es/useHttp/index.js +78 -0
  250. package/es/useModal/index.d.ts +14 -0
  251. package/es/useModal/index.js +92 -0
  252. package/es/utils.d.ts +2 -0
  253. package/es/utils.js +32 -0
  254. package/package.json +11 -5
@@ -0,0 +1,83 @@
1
+ import "antd/lib/tooltip/style";
2
+ import _Tooltip from "antd/lib/tooltip";
3
+ import React from 'react';
4
+ import IconFont from '../../../IconFont';
5
+ import FullScreen from '../../../FullScreen';
6
+ import "./index.css";
7
+
8
+ function Tools(_ref) {
9
+ var scale = _ref.scale,
10
+ imgDownload = _ref.imgDownload,
11
+ setScale = _ref.setScale,
12
+ setRotate = _ref.setRotate,
13
+ containerEle = _ref.containerEle,
14
+ resetPicture = _ref.resetPicture,
15
+ fullScreenChange = _ref.fullScreenChange;
16
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
17
+ className: "picture-tools"
18
+ }, /*#__PURE__*/React.createElement(_Tooltip, {
19
+ placement: "left",
20
+ title: "\u590D\u4F4D"
21
+ }, /*#__PURE__*/React.createElement("div", {
22
+ onClick: resetPicture
23
+ }, /*#__PURE__*/React.createElement(IconFont, {
24
+ type: "icon-S_View_RotateMiddle"
25
+ }))), /*#__PURE__*/React.createElement(_Tooltip, {
26
+ placement: "left",
27
+ title: "\u653E\u5927"
28
+ }, /*#__PURE__*/React.createElement("div", {
29
+ onClick: function onClick() {
30
+ return setScale(0.2);
31
+ },
32
+ className: scale === 3 ? 'disabled' : ''
33
+ }, /*#__PURE__*/React.createElement(IconFont, {
34
+ type: "icon-S_View_ZoomIn"
35
+ }))), /*#__PURE__*/React.createElement(_Tooltip, {
36
+ placement: "left",
37
+ title: "\u7F29\u5C0F"
38
+ }, /*#__PURE__*/React.createElement("div", {
39
+ onClick: function onClick() {
40
+ return setScale(-0.2);
41
+ },
42
+ className: scale === 1 ? 'disabled' : ''
43
+ }, /*#__PURE__*/React.createElement(IconFont, {
44
+ type: "icon-S_View_ZoomOut"
45
+ }))), /*#__PURE__*/React.createElement(_Tooltip, {
46
+ placement: "left",
47
+ title: "\u5411\u5DE6"
48
+ }, /*#__PURE__*/React.createElement("div", {
49
+ onClick: function onClick() {
50
+ return setRotate(-90);
51
+ }
52
+ }, /*#__PURE__*/React.createElement(IconFont, {
53
+ type: "icon-S_View_RotateLeft"
54
+ }))), /*#__PURE__*/React.createElement(_Tooltip, {
55
+ placement: "left",
56
+ title: "\u5411\u53F3"
57
+ }, /*#__PURE__*/React.createElement("div", {
58
+ onClick: function onClick() {
59
+ return setRotate(90);
60
+ }
61
+ }, /*#__PURE__*/React.createElement(IconFont, {
62
+ type: "icon-S_View_RotateRight"
63
+ })))), /*#__PURE__*/React.createElement("div", {
64
+ className: "picture-actions"
65
+ }, imgDownload && /*#__PURE__*/React.createElement("div", {
66
+ onClick: imgDownload
67
+ }, /*#__PURE__*/React.createElement(IconFont, {
68
+ type: "icon-S_Edit_LoadDown"
69
+ })), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FullScreen, {
70
+ className: "footer_window",
71
+ getContainer: function getContainer() {
72
+ return containerEle;
73
+ },
74
+ fullScreenChange: fullScreenChange
75
+ }, function (isFullscreen) {
76
+ return /*#__PURE__*/React.createElement(IconFont, {
77
+ title: !isFullscreen ? '全屏' : '退出全屏',
78
+ type: !isFullscreen ? 'icon-S_View_ScreenViewFull' : 'icon-S_View_ScreenViewExit'
79
+ });
80
+ }))));
81
+ }
82
+
83
+ export default Tools;
@@ -0,0 +1,6 @@
1
+ interface IWheelScaleProps {
2
+ dom: HTMLElement;
3
+ setScale: (scale: number) => void;
4
+ }
5
+ declare function WheelScale({ dom, setScale }: IWheelScaleProps): JSX.Element;
6
+ export default WheelScale;
@@ -0,0 +1,29 @@
1
+ import React, { useCallback, useEffect } from 'react';
2
+
3
+ function WheelScale(_ref) {
4
+ var dom = _ref.dom,
5
+ setScale = _ref.setScale;
6
+ var onWheel = useCallback(function (e) {
7
+ if (e.ctrlKey || e.metaKey) {
8
+ e.preventDefault();
9
+ e.stopPropagation();
10
+ setScale(e.deltaY > 0 ? -0.2 : 0.2);
11
+ }
12
+ }, [setScale]); //滚轮缩放
13
+
14
+ useEffect(function () {
15
+ if (!dom) {
16
+ return null;
17
+ }
18
+
19
+ dom.addEventListener('mousewheel', onWheel, {
20
+ passive: false
21
+ });
22
+ return function () {
23
+ return dom.removeEventListener('mousewheel', onWheel);
24
+ };
25
+ }, [dom, onWheel]);
26
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
27
+ }
28
+
29
+ export default WheelScale;
@@ -0,0 +1,5 @@
1
+ import { PositionType } from './interface';
2
+ export declare function computedBound(ele: HTMLElement, currentPosition: PositionType, scale: number, rotate: number): {
3
+ x: number;
4
+ y: number;
5
+ };
@@ -0,0 +1,77 @@
1
+ export function computedBound(ele, currentPosition, scale, rotate) {
2
+ var data = currentPosition;
3
+ var eleRect = ele.getBoundingClientRect();
4
+ var isHorizontal = Math.abs(rotate) % 180 === 0;
5
+ var w = eleRect.width;
6
+ var h = eleRect.height;
7
+ var lx = 0,
8
+ ly = 0;
9
+
10
+ if (scale === 1 && isHorizontal) {
11
+ return {
12
+ x: 0,
13
+ y: 0
14
+ };
15
+ }
16
+
17
+ if (scale === 1 && !isHorizontal) {
18
+ lx = 0;
19
+ ly = (w - h) / 2;
20
+ } else {
21
+ //TODO 这是限制x区域,应该是使用原来高度的缩放大小来计算,
22
+ if (h * scale < w && !isHorizontal) {
23
+ //TODO 放大后竖向是 h*scale<w是 x = 0,
24
+ lx = 0;
25
+ } else {
26
+ //TODO 得到缩放后可移动区域 在减去误差 (w - h) / 2
27
+ lx = !isHorizontal ? Math.round(h * (scale - 1) / 2 - (w - h) / 2) : Math.round(w * (scale - 1) / 2);
28
+ } //TODO y的限制区域应该是原来宽度的限制区域计算后还要加上原始的(w-h)/2
29
+
30
+
31
+ ly = !isHorizontal ? Math.round(w * (scale - 1) / 2 + (w - h) / 2) : Math.round(h * (scale - 1) / 2);
32
+ }
33
+
34
+ var x = 0,
35
+ y = 0;
36
+
37
+ if (data.x >= 0 && data.x > lx) {
38
+ x = lx;
39
+ }
40
+
41
+ if (data.x >= 0 && data.x < lx) {
42
+ x = data.x;
43
+ }
44
+
45
+ if (data.x < 0 && data.x < -lx) {
46
+ x = -lx;
47
+ }
48
+
49
+ if (data.x < 0 && data.x > -lx) {
50
+ x = data.x;
51
+ }
52
+
53
+ if (data.y >= 0 && data.y > ly) {
54
+ y = ly;
55
+ }
56
+
57
+ if (data.y >= 0 && data.y < ly) {
58
+ y = data.y;
59
+ }
60
+
61
+ if (data.y < 0 && data.y < -ly) {
62
+ y = -ly;
63
+ }
64
+
65
+ if (data.y < 0 && data.y > -ly) {
66
+ y = data.y;
67
+ }
68
+
69
+ if (x !== data.x || y !== data.y) {
70
+ return {
71
+ x: x,
72
+ y: y
73
+ };
74
+ } else {
75
+ return undefined;
76
+ }
77
+ }
@@ -0,0 +1,12 @@
1
+ .picture-view-layout {
2
+ position: relative;
3
+ overflow: hidden;
4
+ user-select: none;
5
+ min-height: 300px;
6
+ }
7
+ .picture-view-layout .picture-move-layout > div {
8
+ width: 100%;
9
+ height: 100%;
10
+ transition: all 0.3s;
11
+ overflow: hidden;
12
+ }
@@ -0,0 +1,16 @@
1
+ import { IPictureProps } from './interface';
2
+ import './index.less';
3
+ declare function Picture({ className, width, height, minHeight, disabledDrag, imagePath, rects, isOpenSelect, disabledDrawMenu, menus, hasTool, fullScreenEle, ...props }: IPictureProps): JSX.Element;
4
+ declare namespace Picture {
5
+ var defaultProps: {
6
+ className: string;
7
+ minHeight: number;
8
+ disabledDrag: boolean;
9
+ isOpenSelect: boolean;
10
+ disabledDrawMenu: boolean;
11
+ menus: any[];
12
+ rects: any[];
13
+ hasTool: boolean;
14
+ };
15
+ }
16
+ export default Picture;
@@ -0,0 +1,344 @@
1
+ import _resizeObserver from "@cloud-app-dev/utils/es/resizeObserver";
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 { __awaiter, __rest } from "tslib";
16
+ import React, { useMemo, useRef, useState, useCallback, useEffect } from 'react';
17
+ import MoveContent from './component/MoveContent';
18
+ import { getRectImagePath } from './loadCaptureRectImage';
19
+ import { computedBound } from './dragBound';
20
+ import { customContextMenu, computedRectScale, cloneImageNode } from './utils';
21
+ import useDraw from './useDraw';
22
+ import Tools from './component/Tools';
23
+ import DrawRect from './component/DrawRect';
24
+ import WheelScale from './component/WheelScale';
25
+ import DefaultRects from './component/DefaultRects';
26
+ import { isFunction } from 'lodash';
27
+ import "./index.css";
28
+
29
+ function Picture(_a) {
30
+ var _this = this;
31
+
32
+ var className = _a.className,
33
+ width = _a.width,
34
+ height = _a.height,
35
+ minHeight = _a.minHeight,
36
+ disabledDrag = _a.disabledDrag,
37
+ imagePath = _a.imagePath,
38
+ rects = _a.rects,
39
+ isOpenSelect = _a.isOpenSelect,
40
+ disabledDrawMenu = _a.disabledDrawMenu,
41
+ menus = _a.menus,
42
+ hasTool = _a.hasTool,
43
+ fullScreenEle = _a.fullScreenEle,
44
+ props = __rest(_a, ["className", "width", "height", "minHeight", "disabledDrag", "imagePath", "rects", "isOpenSelect", "disabledDrawMenu", "menus", "hasTool", "fullScreenEle"]);
45
+
46
+ var _useMemo = useMemo(function () {
47
+ return props;
48
+ }, [props]),
49
+ imgDownload = _useMemo.imgDownload,
50
+ onClickRect = _useMemo.onClickRect,
51
+ onMenuClick = _useMemo.onMenuClick,
52
+ children = _useMemo.children;
53
+
54
+ var _useState = useState({
55
+ x: 0,
56
+ y: 0,
57
+ rotate: 0,
58
+ scale: 1,
59
+ baseXOrY: 'x',
60
+ forceUpdateKey: Date.now(),
61
+ fullScreenStatus: false
62
+ }),
63
+ _useState2 = _slicedToArray(_useState, 2),
64
+ state = _useState2[0],
65
+ setState = _useState2[1];
66
+
67
+ var layoutRef = useRef(null);
68
+ var moveActionRef = useRef(null);
69
+ var domImgRef = useRef(null);
70
+ var imageSourceRef = useRef(null);
71
+
72
+ var _useDraw = useDraw(layoutRef.current, isOpenSelect),
73
+ _useDraw2 = _slicedToArray(_useDraw, 2),
74
+ selectArea = _useDraw2[0],
75
+ isEnd = _useDraw2[1];
76
+
77
+ var loadImageSuccess = useCallback(function (flag) {
78
+ return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
79
+ var _domImgRef$current, width, height;
80
+
81
+ return regeneratorRuntime.wrap(function _callee$(_context) {
82
+ while (1) {
83
+ switch (_context.prev = _context.next) {
84
+ case 0:
85
+ _context.next = 2;
86
+ return cloneImageNode(domImgRef.current);
87
+
88
+ case 2:
89
+ imageSourceRef.current = _context.sent;
90
+ _domImgRef$current = domImgRef.current, width = _domImgRef$current.width, height = _domImgRef$current.height;
91
+ setState(function (old) {
92
+ return Object.assign(Object.assign({}, old), {
93
+ forceUpdateKey: Date.now(),
94
+ baseXOrY: width > height ? 'x' : 'y',
95
+ fullScreenStatus: !!flag
96
+ });
97
+ });
98
+
99
+ case 5:
100
+ case "end":
101
+ return _context.stop();
102
+ }
103
+ }
104
+ }, _callee);
105
+ }));
106
+ }, []);
107
+ /**
108
+ * 设置图片缩放
109
+ */
110
+
111
+ var setScale = useCallback(function (changeValue) {
112
+ var currentValue = state.scale;
113
+
114
+ if (currentValue === 3 && changeValue > 0) {
115
+ return;
116
+ }
117
+
118
+ if (currentValue === 1 && changeValue < 0) {
119
+ return;
120
+ }
121
+
122
+ var scale = currentValue + changeValue;
123
+
124
+ if (scale > 3) {
125
+ scale = 3;
126
+ }
127
+
128
+ if (scale < 1) {
129
+ scale = 1;
130
+ }
131
+
132
+ setState(function (old) {
133
+ return Object.assign(Object.assign({}, old), {
134
+ scale: scale
135
+ });
136
+ });
137
+ }, [state.scale]);
138
+ /**
139
+ * 设置图谱旋转
140
+ */
141
+
142
+ var setRotate = useCallback(function (changeValue) {
143
+ var currentValue = state.rotate;
144
+ setState(function (old) {
145
+ return Object.assign(Object.assign({}, old), {
146
+ rotate: currentValue + changeValue
147
+ });
148
+ });
149
+ }, [state.rotate]);
150
+ /**
151
+ * 重置图片位置
152
+ */
153
+
154
+ var resetPicture = useCallback(function (event) {
155
+ event.stopPropagation(event);
156
+ setState(function (old) {
157
+ return Object.assign(Object.assign({}, old), {
158
+ scale: 1,
159
+ rotate: 0
160
+ });
161
+ });
162
+ moveActionRef.current.updatePosition({
163
+ x: 0,
164
+ y: 0
165
+ });
166
+ }, []);
167
+ /**
168
+ * 拖拽更新位置
169
+ */
170
+
171
+ var onDragChange = useCallback(function (_ref) {
172
+ var x = _ref.x,
173
+ y = _ref.y;
174
+ return setState(function (old) {
175
+ return Object.assign(Object.assign({}, old), {
176
+ x: x,
177
+ y: y
178
+ });
179
+ });
180
+ }, []);
181
+ /**
182
+ * 拖拽结束更新位置,计算边界
183
+ */
184
+
185
+ var onDragEnd = useCallback(function (_, currrentPosition) {
186
+ var scale = state.scale,
187
+ rotate = state.rotate;
188
+
189
+ if (!layoutRef.current) {
190
+ return;
191
+ }
192
+
193
+ var position = computedBound(layoutRef.current, currrentPosition, scale, rotate);
194
+
195
+ if (position) {
196
+ moveActionRef.current.updatePosition(position);
197
+ }
198
+ }, [state]);
199
+ /**
200
+ * 获取结构化的小图(base64)
201
+ */
202
+
203
+ var getRectImage = useCallback(function (rect) {
204
+ var scale = state.scale,
205
+ rotate = state.rotate,
206
+ x = state.x,
207
+ y = state.y;
208
+ return getRectImagePath(imageSourceRef.current, domImgRef.current, rect, {
209
+ scale: scale,
210
+ rotate: rotate,
211
+ x: x,
212
+ y: y
213
+ });
214
+ }, [state]);
215
+ useEffect(function () {
216
+ var timer;
217
+
218
+ var fn = function fn() {
219
+ clearTimeout(timer);
220
+ timer = setTimeout(function () {
221
+ setState(function (old) {
222
+ return Object.assign(Object.assign({}, old), {
223
+ forceUpdateKey: Date.now()
224
+ });
225
+ });
226
+ }, 200);
227
+ };
228
+
229
+ var dom = layoutRef.current;
230
+
231
+ _resizeObserver.createResizeObserver(dom, fn);
232
+
233
+ return function () {
234
+ _resizeObserver.unResizeObserver(dom, fn);
235
+ };
236
+ }, []); // eslint-disable-next-line react-hooks/exhaustive-deps
237
+
238
+ var scaleRects = useMemo(function () {
239
+ return computedRectScale({
240
+ imageSource: imageSourceRef.current,
241
+ domImg: domImgRef.current,
242
+ rects: rects
243
+ });
244
+ }, [rects, state.forceUpdateKey]);
245
+ var isEmpty = useMemo(function () {
246
+ return selectArea.includes(0);
247
+ }, [selectArea]);
248
+
249
+ var _useMemo2 = useMemo(function () {
250
+ return state;
251
+ }, [state]),
252
+ x = _useMemo2.x,
253
+ y = _useMemo2.y,
254
+ scale = _useMemo2.scale,
255
+ rotate = _useMemo2.rotate,
256
+ baseXOrY = _useMemo2.baseXOrY;
257
+
258
+ var renderOptions = {
259
+ isEnd: isEnd,
260
+ isOpenSelect: isOpenSelect,
261
+ selectArea: selectArea,
262
+ getRectImage: getRectImage,
263
+ containerEle: layoutRef.current,
264
+ fullScreenStatus: state.fullScreenStatus
265
+ };
266
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
267
+ className: "picture-view-layout ".concat(className),
268
+ style: {
269
+ width: width || '100%',
270
+ height: height || '100%',
271
+ minHeight: minHeight
272
+ },
273
+ ref: layoutRef,
274
+ onContextMenu: customContextMenu
275
+ }, /*#__PURE__*/React.createElement(MoveContent, {
276
+ className: "picture-move-layout",
277
+ disabled: isOpenSelect || disabledDrag,
278
+ position: {
279
+ x: x,
280
+ y: y
281
+ },
282
+ ref: moveActionRef,
283
+ onDragChange: onDragChange,
284
+ onDragEnd: onDragEnd,
285
+ style: {
286
+ minHeight: minHeight
287
+ },
288
+ size: {
289
+ width: width ? 'max-content' : '100%',
290
+ height: height ? 'max-content' : '100%'
291
+ }
292
+ }, /*#__PURE__*/React.createElement("div", {
293
+ style: {
294
+ transform: "scale(".concat(scale, ") rotate(").concat(rotate, "deg)")
295
+ }
296
+ }, /*#__PURE__*/React.createElement("img", {
297
+ alt: "",
298
+ ref: domImgRef,
299
+ crossOrigin: "anonymous",
300
+ style: {
301
+ maxWidth: baseXOrY === 'x' ? width || '100%' : 'unset',
302
+ maxHeight: baseXOrY === 'x' ? 'unset' : height || '100%'
303
+ },
304
+ draggable: false,
305
+ src: imagePath,
306
+ key: imagePath,
307
+ onLoad: loadImageSuccess
308
+ }), !isEmpty ? /*#__PURE__*/React.createElement(DrawRect, {
309
+ rect: selectArea,
310
+ onMenuClick: onMenuClick,
311
+ getRectImage: getRectImage,
312
+ menus: menus,
313
+ canRenderMenu: isEnd && !disabledDrawMenu && menus.length > 0,
314
+ containerDom: layoutRef.current
315
+ }) : !isOpenSelect ? /*#__PURE__*/React.createElement(DefaultRects, {
316
+ rects: scaleRects,
317
+ onClickRect: onClickRect,
318
+ getRectImage: getRectImage,
319
+ containerDom: layoutRef.current
320
+ }) : null)), hasTool && /*#__PURE__*/React.createElement(Tools, {
321
+ setScale: setScale,
322
+ setRotate: setRotate,
323
+ scale: scale,
324
+ containerEle: fullScreenEle || layoutRef.current,
325
+ resetPicture: resetPicture,
326
+ imgDownload: imgDownload,
327
+ fullScreenChange: loadImageSuccess
328
+ }), /*#__PURE__*/React.createElement(WheelScale, {
329
+ setScale: setScale,
330
+ dom: layoutRef.current
331
+ })), isFunction(children) && children(renderOptions));
332
+ }
333
+
334
+ Picture.defaultProps = {
335
+ className: '',
336
+ minHeight: 300,
337
+ disabledDrag: false,
338
+ isOpenSelect: false,
339
+ disabledDrawMenu: false,
340
+ menus: [],
341
+ rects: [],
342
+ hasTool: true
343
+ };
344
+ export default Picture;
@@ -0,0 +1,67 @@
1
+ import * as React from 'react';
2
+
3
+ export type MenuRectType = {
4
+ pathname: string;
5
+ title: string;
6
+ icon: string;
7
+ };
8
+
9
+ export type TagItemType = {
10
+ value: string;
11
+ label: string;
12
+ icon: string;
13
+ tagLabel?: string;
14
+ };
15
+
16
+ export type ImageType = 'face' | 'body' | 'nonVehicle' | 'vehicle' | 'thing';
17
+
18
+ export type RectType = {
19
+ rect: Array<number>;
20
+ type: ImageType;
21
+ needExpand?: boolean;
22
+ imgId?: string;
23
+ area?: number;
24
+ tags?: TagItemType[];
25
+ imgUrl?: string;
26
+ smId?: string;
27
+ isDefault?: boolean;
28
+ feature?: string;
29
+ dupId?: string;
30
+ lowQuality?: boolean;
31
+ };
32
+
33
+ export type PositionType = {
34
+ x: number;
35
+ y: number;
36
+ };
37
+
38
+ export type DeviationType = {
39
+ offsetX: number;
40
+ offsetY: number;
41
+ width: number | string;
42
+ height: number | string;
43
+ };
44
+
45
+ export type SizeType = {
46
+ width: number | string;
47
+ height: number | string;
48
+ };
49
+
50
+ export interface IPictureProps {
51
+ className?: string;
52
+ width?: number | string;
53
+ height?: number | string;
54
+ minHeight?: number | string;
55
+ disabledDrag?: false;
56
+ imagePath: string;
57
+ rects?: RectType[];
58
+ isOpenSelect?: false;
59
+ disabledDrawMenu?: false;
60
+ menus?: MenuRectType[];
61
+ imgDownload?: () => void;
62
+ onClickRect?: (item: RectType & { base64: string }) => void;
63
+ onMenuClick?: (item: MenuRectType & { base64: string }) => void;
64
+ children?: (option: any) => void;
65
+ hasTool?: boolean;
66
+ fullScreenEle?: Element;
67
+ }
@@ -0,0 +1,8 @@
1
+ import { ImageType } from './interface';
2
+ export declare function loadCaptureRectImage(image: HTMLImageElement, rect: number[], imageType: ImageType): Promise<string>;
3
+ export declare function getRectImagePath(sourceImage: HTMLImageElement, cuurentImage: HTMLImageElement, rect: number[], options?: {
4
+ scale: number;
5
+ rotate: number;
6
+ x: number;
7
+ y: number;
8
+ }): string;