bhd-components 0.9.1 → 0.9.2

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 (180) hide show
  1. package/dist/{100c4e1e.esm.es5.development.js → a5565b8a.esm.es5.development.js} +9674 -2548
  2. package/dist/deb6cc9b.esm.es5.production.js +485 -0
  3. package/dist/index.esm.es5.development.css +379 -0
  4. package/dist/index.esm.es5.development.js +3871 -6326
  5. package/dist/index.esm.es5.production.css +1 -1
  6. package/dist/index.esm.es5.production.js +1 -1
  7. package/es2017/customerService/index.js +1 -1
  8. package/es2017/customerService/js-screen-shot/assets/less/screen-shot.less +478 -0
  9. package/es2017/customerService/js-screen-shot/lib/common-methods/CanvasPatch.d.ts +1 -0
  10. package/es2017/customerService/js-screen-shot/lib/common-methods/CanvasPatch.js +15 -0
  11. package/es2017/customerService/js-screen-shot/lib/common-methods/DeviceTypeVerif.d.ts +2 -0
  12. package/es2017/customerService/js-screen-shot/lib/common-methods/DeviceTypeVerif.js +32 -0
  13. package/es2017/customerService/js-screen-shot/lib/common-methods/FixedData.d.ts +11 -0
  14. package/es2017/customerService/js-screen-shot/lib/common-methods/FixedData.js +17 -0
  15. package/es2017/customerService/js-screen-shot/lib/common-methods/GetBrushSelectedName.d.ts +5 -0
  16. package/es2017/customerService/js-screen-shot/lib/common-methods/GetBrushSelectedName.js +18 -0
  17. package/es2017/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.d.ts +4 -0
  18. package/es2017/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.js +25 -0
  19. package/es2017/customerService/js-screen-shot/lib/common-methods/GetColor.d.ts +1 -0
  20. package/es2017/customerService/js-screen-shot/lib/common-methods/GetColor.js +41 -0
  21. package/es2017/customerService/js-screen-shot/lib/common-methods/GetSelectedCalssName.d.ts +1 -0
  22. package/es2017/customerService/js-screen-shot/lib/common-methods/GetSelectedCalssName.js +23 -0
  23. package/es2017/customerService/js-screen-shot/lib/common-methods/GetToolRelativePosition.d.ts +7 -0
  24. package/es2017/customerService/js-screen-shot/lib/common-methods/GetToolRelativePosition.js +9 -0
  25. package/es2017/customerService/js-screen-shot/lib/common-methods/ImgScaling.d.ts +11 -0
  26. package/es2017/customerService/js-screen-shot/lib/common-methods/ImgScaling.js +41 -0
  27. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.d.ts +8 -0
  28. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.js +125 -0
  29. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.d.ts +1 -0
  30. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.js +37 -0
  31. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.d.ts +1 -0
  32. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.js +26 -0
  33. package/es2017/customerService/js-screen-shot/lib/common-methods/SelectColor.d.ts +1 -0
  34. package/es2017/customerService/js-screen-shot/lib/common-methods/SelectColor.js +6 -0
  35. package/es2017/customerService/js-screen-shot/lib/common-methods/SelectTextSize.d.ts +5 -0
  36. package/es2017/customerService/js-screen-shot/lib/common-methods/SelectTextSize.js +26 -0
  37. package/es2017/customerService/js-screen-shot/lib/common-methods/SetBrushSize.d.ts +14 -0
  38. package/es2017/customerService/js-screen-shot/lib/common-methods/SetBrushSize.js +50 -0
  39. package/es2017/customerService/js-screen-shot/lib/common-methods/SetSelectedClassName.d.ts +7 -0
  40. package/es2017/customerService/js-screen-shot/lib/common-methods/SetSelectedClassName.js +28 -0
  41. package/es2017/customerService/js-screen-shot/lib/common-methods/TakeOutHistory.d.ts +1 -0
  42. package/es2017/customerService/js-screen-shot/lib/common-methods/TakeOutHistory.js +20 -0
  43. package/es2017/customerService/js-screen-shot/lib/common-methods/UpdateContainerMouseStyle.d.ts +1 -0
  44. package/es2017/customerService/js-screen-shot/lib/common-methods/UpdateContainerMouseStyle.js +10 -0
  45. package/es2017/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.d.ts +17 -0
  46. package/es2017/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.js +92 -0
  47. package/es2017/customerService/js-screen-shot/lib/config/Toolbar.d.ts +5 -0
  48. package/es2017/customerService/js-screen-shot/lib/config/Toolbar.js +46 -0
  49. package/es2017/customerService/js-screen-shot/lib/main-entrance/CreateDom.d.ts +24 -0
  50. package/es2017/customerService/js-screen-shot/lib/main-entrance/CreateDom.js +304 -0
  51. package/es2017/customerService/js-screen-shot/lib/main-entrance/InitData.d.ts +78 -0
  52. package/es2017/customerService/js-screen-shot/lib/main-entrance/InitData.js +538 -0
  53. package/es2017/customerService/js-screen-shot/lib/main-entrance/PlugInParameters.d.ts +46 -0
  54. package/es2017/customerService/js-screen-shot/lib/main-entrance/PlugInParameters.js +162 -0
  55. package/es2017/customerService/js-screen-shot/lib/split-methods/AddHistoryData.d.ts +1 -0
  56. package/es2017/customerService/js-screen-shot/lib/split-methods/AddHistoryData.js +23 -0
  57. package/es2017/customerService/js-screen-shot/lib/split-methods/BoundaryJudgment.d.ts +8 -0
  58. package/es2017/customerService/js-screen-shot/lib/split-methods/BoundaryJudgment.js +13 -0
  59. package/es2017/customerService/js-screen-shot/lib/split-methods/CalculateOptionIcoPosition.d.ts +5 -0
  60. package/es2017/customerService/js-screen-shot/lib/split-methods/CalculateOptionIcoPosition.js +21 -0
  61. package/es2017/customerService/js-screen-shot/lib/split-methods/CalculateToolLocation.d.ts +16 -0
  62. package/es2017/customerService/js-screen-shot/lib/split-methods/CalculateToolLocation.js +39 -0
  63. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawArrow.d.ts +31 -0
  64. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawArrow.js +131 -0
  65. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCircle.d.ts +11 -0
  66. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCircle.js +37 -0
  67. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.d.ts +19 -0
  68. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.js +118 -0
  69. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawLineArrow.d.ts +13 -0
  70. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawLineArrow.js +51 -0
  71. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawMasking.d.ts +6 -0
  72. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawMasking.js +41 -0
  73. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawMosaic.d.ts +12 -0
  74. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawMosaic.js +67 -0
  75. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawPencil.d.ts +13 -0
  76. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawPencil.js +27 -0
  77. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawRectangle.d.ts +11 -0
  78. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawRectangle.js +22 -0
  79. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawText.d.ts +10 -0
  80. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawText.js +24 -0
  81. package/es2017/customerService/js-screen-shot/lib/split-methods/KeyboardEventHandle.d.ts +10 -0
  82. package/es2017/customerService/js-screen-shot/lib/split-methods/KeyboardEventHandle.js +50 -0
  83. package/es2017/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.d.ts +2 -0
  84. package/es2017/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.js +61 -0
  85. package/es2017/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.d.ts +1 -0
  86. package/es2017/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.js +132 -0
  87. package/es2017/customerService/js-screen-shot/lib/split-methods/drawCrossImg.d.ts +1 -0
  88. package/es2017/customerService/js-screen-shot/lib/split-methods/drawCrossImg.js +32 -0
  89. package/es2017/customerService/js-screen-shot/lib/type/ComponentType.d.ts +133 -0
  90. package/es2017/customerService/js-screen-shot/lib/type/ComponentType.js +2 -0
  91. package/es2017/customerService/js-screen-shot/main.d.ts +110 -0
  92. package/es2017/customerService/js-screen-shot/main.js +1098 -0
  93. package/esm/customerService/index.js +1 -1
  94. package/esm/customerService/js-screen-shot/assets/less/screen-shot.less +478 -0
  95. package/esm/customerService/js-screen-shot/lib/common-methods/CanvasPatch.d.ts +1 -0
  96. package/esm/customerService/js-screen-shot/lib/common-methods/CanvasPatch.js +15 -0
  97. package/esm/customerService/js-screen-shot/lib/common-methods/DeviceTypeVerif.d.ts +2 -0
  98. package/esm/customerService/js-screen-shot/lib/common-methods/DeviceTypeVerif.js +32 -0
  99. package/esm/customerService/js-screen-shot/lib/common-methods/FixedData.d.ts +11 -0
  100. package/esm/customerService/js-screen-shot/lib/common-methods/FixedData.js +17 -0
  101. package/esm/customerService/js-screen-shot/lib/common-methods/GetBrushSelectedName.d.ts +5 -0
  102. package/esm/customerService/js-screen-shot/lib/common-methods/GetBrushSelectedName.js +18 -0
  103. package/esm/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.d.ts +4 -0
  104. package/esm/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.js +25 -0
  105. package/esm/customerService/js-screen-shot/lib/common-methods/GetColor.d.ts +1 -0
  106. package/esm/customerService/js-screen-shot/lib/common-methods/GetColor.js +41 -0
  107. package/esm/customerService/js-screen-shot/lib/common-methods/GetSelectedCalssName.d.ts +1 -0
  108. package/esm/customerService/js-screen-shot/lib/common-methods/GetSelectedCalssName.js +23 -0
  109. package/esm/customerService/js-screen-shot/lib/common-methods/GetToolRelativePosition.d.ts +7 -0
  110. package/esm/customerService/js-screen-shot/lib/common-methods/GetToolRelativePosition.js +10 -0
  111. package/esm/customerService/js-screen-shot/lib/common-methods/ImgScaling.d.ts +11 -0
  112. package/esm/customerService/js-screen-shot/lib/common-methods/ImgScaling.js +38 -0
  113. package/esm/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.d.ts +8 -0
  114. package/esm/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.js +125 -0
  115. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.d.ts +1 -0
  116. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.js +37 -0
  117. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.d.ts +1 -0
  118. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.js +26 -0
  119. package/esm/customerService/js-screen-shot/lib/common-methods/SelectColor.d.ts +1 -0
  120. package/esm/customerService/js-screen-shot/lib/common-methods/SelectColor.js +6 -0
  121. package/esm/customerService/js-screen-shot/lib/common-methods/SelectTextSize.d.ts +5 -0
  122. package/esm/customerService/js-screen-shot/lib/common-methods/SelectTextSize.js +26 -0
  123. package/esm/customerService/js-screen-shot/lib/common-methods/SetBrushSize.d.ts +14 -0
  124. package/esm/customerService/js-screen-shot/lib/common-methods/SetBrushSize.js +50 -0
  125. package/esm/customerService/js-screen-shot/lib/common-methods/SetSelectedClassName.d.ts +7 -0
  126. package/esm/customerService/js-screen-shot/lib/common-methods/SetSelectedClassName.js +28 -0
  127. package/esm/customerService/js-screen-shot/lib/common-methods/TakeOutHistory.d.ts +1 -0
  128. package/esm/customerService/js-screen-shot/lib/common-methods/TakeOutHistory.js +20 -0
  129. package/esm/customerService/js-screen-shot/lib/common-methods/UpdateContainerMouseStyle.d.ts +1 -0
  130. package/esm/customerService/js-screen-shot/lib/common-methods/UpdateContainerMouseStyle.js +10 -0
  131. package/esm/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.d.ts +17 -0
  132. package/esm/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.js +92 -0
  133. package/esm/customerService/js-screen-shot/lib/config/Toolbar.d.ts +5 -0
  134. package/esm/customerService/js-screen-shot/lib/config/Toolbar.js +46 -0
  135. package/esm/customerService/js-screen-shot/lib/main-entrance/CreateDom.d.ts +24 -0
  136. package/esm/customerService/js-screen-shot/lib/main-entrance/CreateDom.js +345 -0
  137. package/esm/customerService/js-screen-shot/lib/main-entrance/InitData.d.ts +78 -0
  138. package/esm/customerService/js-screen-shot/lib/main-entrance/InitData.js +758 -0
  139. package/esm/customerService/js-screen-shot/lib/main-entrance/PlugInParameters.d.ts +46 -0
  140. package/esm/customerService/js-screen-shot/lib/main-entrance/PlugInParameters.js +259 -0
  141. package/esm/customerService/js-screen-shot/lib/split-methods/AddHistoryData.d.ts +1 -0
  142. package/esm/customerService/js-screen-shot/lib/split-methods/AddHistoryData.js +23 -0
  143. package/esm/customerService/js-screen-shot/lib/split-methods/BoundaryJudgment.d.ts +8 -0
  144. package/esm/customerService/js-screen-shot/lib/split-methods/BoundaryJudgment.js +13 -0
  145. package/esm/customerService/js-screen-shot/lib/split-methods/CalculateOptionIcoPosition.d.ts +5 -0
  146. package/esm/customerService/js-screen-shot/lib/split-methods/CalculateOptionIcoPosition.js +21 -0
  147. package/esm/customerService/js-screen-shot/lib/split-methods/CalculateToolLocation.d.ts +16 -0
  148. package/esm/customerService/js-screen-shot/lib/split-methods/CalculateToolLocation.js +39 -0
  149. package/esm/customerService/js-screen-shot/lib/split-methods/DrawArrow.d.ts +31 -0
  150. package/esm/customerService/js-screen-shot/lib/split-methods/DrawArrow.js +159 -0
  151. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCircle.d.ts +11 -0
  152. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCircle.js +37 -0
  153. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.d.ts +19 -0
  154. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.js +119 -0
  155. package/esm/customerService/js-screen-shot/lib/split-methods/DrawLineArrow.d.ts +13 -0
  156. package/esm/customerService/js-screen-shot/lib/split-methods/DrawLineArrow.js +51 -0
  157. package/esm/customerService/js-screen-shot/lib/split-methods/DrawMasking.d.ts +6 -0
  158. package/esm/customerService/js-screen-shot/lib/split-methods/DrawMasking.js +41 -0
  159. package/esm/customerService/js-screen-shot/lib/split-methods/DrawMosaic.d.ts +12 -0
  160. package/esm/customerService/js-screen-shot/lib/split-methods/DrawMosaic.js +67 -0
  161. package/esm/customerService/js-screen-shot/lib/split-methods/DrawPencil.d.ts +13 -0
  162. package/esm/customerService/js-screen-shot/lib/split-methods/DrawPencil.js +27 -0
  163. package/esm/customerService/js-screen-shot/lib/split-methods/DrawRectangle.d.ts +11 -0
  164. package/esm/customerService/js-screen-shot/lib/split-methods/DrawRectangle.js +22 -0
  165. package/esm/customerService/js-screen-shot/lib/split-methods/DrawText.d.ts +10 -0
  166. package/esm/customerService/js-screen-shot/lib/split-methods/DrawText.js +24 -0
  167. package/esm/customerService/js-screen-shot/lib/split-methods/KeyboardEventHandle.d.ts +10 -0
  168. package/esm/customerService/js-screen-shot/lib/split-methods/KeyboardEventHandle.js +61 -0
  169. package/esm/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.d.ts +2 -0
  170. package/esm/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.js +62 -0
  171. package/esm/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.d.ts +1 -0
  172. package/esm/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.js +132 -0
  173. package/esm/customerService/js-screen-shot/lib/split-methods/drawCrossImg.d.ts +1 -0
  174. package/esm/customerService/js-screen-shot/lib/split-methods/drawCrossImg.js +32 -0
  175. package/esm/customerService/js-screen-shot/lib/type/ComponentType.d.ts +133 -0
  176. package/esm/customerService/js-screen-shot/lib/type/ComponentType.js +2 -0
  177. package/esm/customerService/js-screen-shot/main.d.ts +110 -0
  178. package/esm/customerService/js-screen-shot/main.js +1201 -0
  179. package/package.json +1 -1
  180. package/dist/a4d5ce04.esm.es5.production.js +0 -468
@@ -0,0 +1,538 @@
1
+ import { takeOutHistory } from "../common-methods/TakeOutHistory";
2
+ import { getToolRelativePosition } from "../common-methods/GetToolRelativePosition";
3
+ import PlugInParameters from "./PlugInParameters";
4
+ // 裁剪框修剪状态
5
+ let draggingTrim = false;
6
+ // 裁剪框拖拽状态
7
+ let dragging = false;
8
+ // 截图工具栏点击状态
9
+ let toolClickStatus = false;
10
+ // 当前选择的颜色
11
+ let selectedColor = "#F53340";
12
+ // 当前点击的工具栏名称
13
+ let toolName = "";
14
+ // 当前选择的画笔大小
15
+ let penSize = 2;
16
+ // 马赛克工具的笔触大小
17
+ let mosaicPenSize = 10;
18
+ // 裁剪框顶点边框直径大小
19
+ const borderSize = 10;
20
+ // 撤销点击次数
21
+ let undoClickNum = 0;
22
+ // 画笔历史记录
23
+ let history = [];
24
+ // 文本输入工具栏点击状态
25
+ const textClickStatus = false;
26
+ // 工具栏超出截图容器状态
27
+ let toolPositionStatus = false;
28
+ // 裁剪框位置参数
29
+ let cutOutBoxPosition = {
30
+ startX: 0,
31
+ startY: 0,
32
+ width: 0,
33
+ height: 0
34
+ };
35
+ // 获取截图容器dom
36
+ let screenShotController = null;
37
+ // 获取截图工具栏容器dom
38
+ let toolController = null;
39
+ // let cutBoxSizeContainer: HTMLDivElement | null = null;
40
+ // 获取文本输入区域dom
41
+ let textInputController = null;
42
+ // 截图工具栏画笔选择dom
43
+ let optionIcoController = null;
44
+ // 截图工具栏文字大小选择dom
45
+ let optionTextSizeController = null;
46
+ let brushSelectionController = null;
47
+ let textSizeContainer = null;
48
+ let fontSize = 17;
49
+ let optionController = null;
50
+ let colorSelectController = null;
51
+ let rightPanel = null;
52
+ let colorSelectPanel = null;
53
+ let undoController = null;
54
+ // 屏幕截图容器
55
+ let screenShotImageController = null;
56
+ // 截图容器是否可滚动
57
+ let noScrollStatus = false;
58
+ // 数据初始化标识
59
+ let initStatus = false;
60
+ // 当前工具栏内选中的工具
61
+ let activeTool = "";
62
+ let textInfo;
63
+ // 是否需要还原页面的滚动条状态
64
+ let resetScrollbarState = false;
65
+ // 当前是否处于文本编辑状态
66
+ let textEditState = false;
67
+ class InitData {
68
+ // 设置数据初始化标识
69
+ setInitStatus(status) {
70
+ initStatus = status;
71
+ }
72
+ // 设置截图容器宽高
73
+ setScreenShotInfo(width, height) {
74
+ this.getScreenShotContainer();
75
+ if (screenShotController == null) return;
76
+ // 增加截图锁屏
77
+ if (noScrollStatus) {
78
+ document.body.classList.add("__screenshot-lock-scroll");
79
+ }
80
+ screenShotController.width = width;
81
+ screenShotController.height = height;
82
+ }
83
+ // 设置截图容器位置
84
+ setScreenShotPosition(left, top) {
85
+ this.getScreenShotContainer();
86
+ if (screenShotController == null) return;
87
+ const { left: rLeft , top: rTop } = getToolRelativePosition(left, top);
88
+ screenShotController.style.left = rLeft + "px";
89
+ screenShotController.style.top = rTop + "px";
90
+ }
91
+ // 显示截图区域容器
92
+ showScreenShotPanel() {
93
+ this.getScreenShotContainer();
94
+ if (screenShotController == null) return;
95
+ screenShotController.style.display = "block";
96
+ }
97
+ // 获取截图容器dom
98
+ getScreenShotContainer() {
99
+ screenShotController = document.getElementById("screenShotContainer");
100
+ return screenShotController;
101
+ }
102
+ // 获取截图工具栏dom
103
+ getToolController() {
104
+ toolController = document.getElementById("toolPanel");
105
+ return toolController;
106
+ }
107
+ // // 获取裁剪框尺寸显示容器
108
+ // public getCutBoxSizeContainer() {
109
+ // cutBoxSizeContainer = document.getElementById(
110
+ // "cutBoxSizePanel"
111
+ // ) as HTMLDivElement | null;
112
+ // return cutBoxSizeContainer;
113
+ // }
114
+ // 获取文本输入区域dom
115
+ getTextInputController() {
116
+ textInputController = document.getElementById("textInputPanel");
117
+ return textInputController;
118
+ }
119
+ // 获取文本输入工具栏展示状态
120
+ getTextStatus() {
121
+ return textClickStatus;
122
+ }
123
+ // 获取屏幕截图容器
124
+ getScreenShotImageController() {
125
+ return screenShotImageController;
126
+ }
127
+ // 设置屏幕截图
128
+ setScreenShotImageController(imageController) {
129
+ screenShotImageController = imageController;
130
+ }
131
+ // 设置截图工具栏展示状态
132
+ setToolStatus(status) {
133
+ toolController = this.getToolController();
134
+ if (status) {
135
+ toolController.style.display = "block";
136
+ return;
137
+ }
138
+ toolController.style.display = "none";
139
+ }
140
+ // // 设置裁剪框尺寸显示容器展示状态
141
+ // public setCutBoxSizeStatus(status: boolean) {
142
+ // if (cutBoxSizeContainer == null) return;
143
+ // if (status) {
144
+ // cutBoxSizeContainer.style.display = "flex";
145
+ // return;
146
+ // }
147
+ // cutBoxSizeContainer.style.display = "none";
148
+ // }
149
+ // // 设置裁剪框尺寸显示容器位置
150
+ // public setCutBoxSizePosition(x: number, y: number) {
151
+ // if (cutBoxSizeContainer == null) return;
152
+ // const { left, top } = getToolRelativePosition(x, y);
153
+ // cutBoxSizeContainer.style.left = left + "px";
154
+ // let sscTop = 0;
155
+ // if (screenShotController) {
156
+ // sscTop = parseInt(screenShotController.style.top);
157
+ // }
158
+ // cutBoxSizeContainer.style.top = top + sscTop + "px";
159
+ // }
160
+ setTextEditState(state) {
161
+ textEditState = state;
162
+ }
163
+ getTextEditState() {
164
+ return textEditState;
165
+ }
166
+ // // 设置裁剪框尺寸
167
+ // public setCutBoxSize(width: number, height: number) {
168
+ // if (cutBoxSizeContainer == null) return;
169
+ // // width和height保留整数
170
+ // width = Math.floor(width);
171
+ // height = Math.floor(height);
172
+ // const childrenPanel = cutBoxSizeContainer.childNodes;
173
+ // // p标签已存在直接更改文本值即可
174
+ // if (childrenPanel.length > 0) {
175
+ // (childrenPanel[0] as HTMLParagraphElement).innerText = `${width} * ${height}`;
176
+ // return;
177
+ // }
178
+ // // 不存在则渲染
179
+ // const textPanel = document.createElement("p");
180
+ // textPanel.innerText = `${width} * ${height}`;
181
+ // cutBoxSizeContainer.appendChild(textPanel);
182
+ // }
183
+ // 设置文本输入工具栏展示状态
184
+ setTextStatus(status) {
185
+ textInputController = this.getTextInputController();
186
+ if (textInputController == null) return;
187
+ if (status) {
188
+ // 显示文本输入工具
189
+ textInputController.style.display = "block";
190
+ return;
191
+ }
192
+ textInputController.style.display = "none";
193
+ }
194
+ // 设置截图工具位置信息
195
+ setToolInfo(left, top) {
196
+ toolController = document.getElementById("toolPanel");
197
+ const { left: rLeft , top: rTop } = getToolRelativePosition(left, top);
198
+ toolController.style.left = rLeft + "px";
199
+ let sscTop = 0;
200
+ if (screenShotController) {
201
+ sscTop = parseInt(screenShotController.style.top);
202
+ }
203
+ toolController.style.top = rTop + sscTop + "px";
204
+ }
205
+ // 获取截图工具栏点击状态
206
+ getToolClickStatus() {
207
+ return toolClickStatus;
208
+ }
209
+ // 设置截图工具栏点击状态
210
+ setToolClickStatus(status) {
211
+ toolClickStatus = status;
212
+ }
213
+ setResetScrollbarState(state) {
214
+ resetScrollbarState = state;
215
+ }
216
+ getResetScrollbarState() {
217
+ return resetScrollbarState;
218
+ }
219
+ // 获取裁剪框位置信息
220
+ getCutOutBoxPosition() {
221
+ return cutOutBoxPosition;
222
+ }
223
+ getDragging() {
224
+ return dragging;
225
+ }
226
+ setDragging(status) {
227
+ dragging = status;
228
+ }
229
+ getDraggingTrim() {
230
+ return draggingTrim;
231
+ }
232
+ getToolPositionStatus() {
233
+ return toolPositionStatus;
234
+ }
235
+ setToolPositionStatus(status) {
236
+ toolPositionStatus = status;
237
+ }
238
+ setDraggingTrim(status) {
239
+ draggingTrim = status;
240
+ }
241
+ // 设置裁剪框位置信息
242
+ setCutOutBoxPosition(mouseX, mouseY, width, height) {
243
+ cutOutBoxPosition.startX = mouseX;
244
+ cutOutBoxPosition.startY = mouseY;
245
+ cutOutBoxPosition.width = width;
246
+ cutOutBoxPosition.height = height;
247
+ }
248
+ setFontSize(size) {
249
+ fontSize = size;
250
+ }
251
+ // 设置截图工具栏画笔选择工具展示状态
252
+ setOptionStatus(status) {
253
+ // 获取截图工具栏与三角形角标容器
254
+ optionIcoController = this.getOptionIcoController();
255
+ optionController = this.getOptionController();
256
+ if (optionIcoController == null || optionController == null) return;
257
+ if (status) {
258
+ optionIcoController.style.display = "block";
259
+ optionController.style.display = "block";
260
+ return;
261
+ }
262
+ optionIcoController.style.display = "none";
263
+ optionController.style.display = "none";
264
+ }
265
+ getFontSize() {
266
+ return fontSize;
267
+ }
268
+ // 设置截图工具栏文字大小下拉框选项选择工具展示状态
269
+ setTextSizeOptionStatus(status) {
270
+ optionTextSizeController = this.getOptionTextSizeController();
271
+ if (optionTextSizeController == null) return;
272
+ if (status) {
273
+ optionTextSizeController.style.display = "flex";
274
+ return;
275
+ }
276
+ optionTextSizeController.style.display = "none";
277
+ }
278
+ setTextSizePanelStatus(status) {
279
+ textSizeContainer = this.getTextSizeContainer();
280
+ if (textSizeContainer == null) return;
281
+ if (status) {
282
+ console.log("显示");
283
+ textSizeContainer.style.display = "flex";
284
+ return;
285
+ }
286
+ textSizeContainer.style.display = "none";
287
+ }
288
+ setBrushSelectionStatus(status) {
289
+ brushSelectionController = this.getBrushSelectionController();
290
+ if (brushSelectionController == null) return;
291
+ if (status) {
292
+ brushSelectionController.style.display = "block";
293
+ return;
294
+ }
295
+ brushSelectionController.style.display = "none";
296
+ }
297
+ // 隐藏画笔工具栏三角形角标
298
+ hiddenOptionIcoStatus() {
299
+ optionIcoController = this.getOptionIcoController();
300
+ if (optionIcoController == null) return;
301
+ optionIcoController.style.display = "none";
302
+ }
303
+ // 获取截图工具栏画笔选择工具dom
304
+ getOptionIcoController() {
305
+ optionIcoController = document.getElementById("optionIcoController");
306
+ return optionIcoController;
307
+ }
308
+ getTextSizeContainer() {
309
+ textSizeContainer = document.getElementById("textSizePanel");
310
+ return textSizeContainer;
311
+ }
312
+ getOptionTextSizeController() {
313
+ optionTextSizeController = document.getElementById("textSelectPanel");
314
+ return optionTextSizeController;
315
+ }
316
+ getBrushSelectionController() {
317
+ brushSelectionController = document.getElementById("brushSelectPanel");
318
+ return brushSelectionController;
319
+ }
320
+ getOptionController() {
321
+ optionController = document.getElementById("optionPanel");
322
+ return optionController;
323
+ }
324
+ // 设置画笔选择工具栏位置
325
+ setOptionPosition(position) {
326
+ // 获取截图工具栏与三角形角标容器
327
+ optionIcoController = this.getOptionIcoController();
328
+ optionController = this.getOptionController();
329
+ if (optionIcoController == null || optionController == null) return;
330
+ // 修改位置
331
+ const toolPosition = this.getToolPosition();
332
+ if (toolPosition == null) return;
333
+ const icoLeft = toolPosition.left + position + "px";
334
+ const icoTop = toolPosition.top + 44 + "px";
335
+ const optionLeft = toolPosition.left + "px";
336
+ const optionTop = toolPosition.top + 44 + 6 + "px";
337
+ optionIcoController.style.left = icoLeft;
338
+ optionIcoController.style.top = icoTop;
339
+ optionController.style.left = optionLeft;
340
+ optionController.style.top = optionTop;
341
+ }
342
+ // 获取工具栏位置
343
+ getToolPosition() {
344
+ toolController = this.getToolController();
345
+ if (toolController == null) return;
346
+ return {
347
+ left: toolController.offsetLeft,
348
+ top: toolController.offsetTop
349
+ };
350
+ }
351
+ // 获取/设置当前选择的颜色
352
+ getSelectedColor() {
353
+ return selectedColor;
354
+ }
355
+ setSelectedColor(color) {
356
+ selectedColor = color;
357
+ colorSelectPanel = this.getColorSelectPanel();
358
+ if (colorSelectPanel == null) return;
359
+ colorSelectPanel.style.backgroundColor = selectedColor;
360
+ }
361
+ getColorSelectPanel() {
362
+ colorSelectPanel = document.getElementById("colorSelectPanel");
363
+ return colorSelectPanel;
364
+ }
365
+ // 获取/设置当前点击的工具栏条目名称
366
+ getToolName() {
367
+ return toolName;
368
+ }
369
+ setToolName(itemName) {
370
+ toolName = itemName;
371
+ }
372
+ // 获取/设置当前画笔大小
373
+ getPenSize() {
374
+ return penSize;
375
+ }
376
+ setPenSize(size) {
377
+ penSize = size;
378
+ }
379
+ getMosaicPenSize() {
380
+ return mosaicPenSize;
381
+ }
382
+ setMosaicPenSize(size) {
383
+ mosaicPenSize = size;
384
+ }
385
+ getBorderSize() {
386
+ return borderSize;
387
+ }
388
+ getHistory() {
389
+ return history;
390
+ }
391
+ shiftHistory() {
392
+ return history.shift();
393
+ }
394
+ popHistory() {
395
+ return history.pop();
396
+ }
397
+ pushHistory(item) {
398
+ history.push(item);
399
+ }
400
+ getUndoClickNum() {
401
+ return undoClickNum;
402
+ }
403
+ setUndoClickNum(clickNumber) {
404
+ undoClickNum = clickNumber;
405
+ }
406
+ getColorPanel() {
407
+ colorSelectController = document.getElementById("colorPanel");
408
+ return colorSelectController;
409
+ }
410
+ setColorPanelStatus(status) {
411
+ colorSelectController = this.getColorPanel();
412
+ if (colorSelectController == null) return;
413
+ if (status) {
414
+ colorSelectController.style.display = "flex";
415
+ return;
416
+ }
417
+ colorSelectController.style.display = "none";
418
+ }
419
+ getNoScrollStatus() {
420
+ return noScrollStatus;
421
+ }
422
+ setNoScrollStatus(status) {
423
+ if (status != null) {
424
+ noScrollStatus = status;
425
+ }
426
+ }
427
+ setActiveToolName(toolName) {
428
+ activeTool = toolName;
429
+ }
430
+ getActiveToolName() {
431
+ return activeTool;
432
+ }
433
+ setTextInfo(info) {
434
+ textInfo = info;
435
+ }
436
+ getTextInfo() {
437
+ return textInfo;
438
+ }
439
+ getRightPanel() {
440
+ rightPanel = document.getElementById("rightPanel");
441
+ return rightPanel;
442
+ }
443
+ setRightPanel(status) {
444
+ rightPanel = this.getRightPanel();
445
+ if (rightPanel == null) return;
446
+ if (status) {
447
+ rightPanel.style.display = "flex";
448
+ return;
449
+ }
450
+ rightPanel.style.display = "none";
451
+ }
452
+ setUndoStatus(status) {
453
+ undoController = this.getUndoController();
454
+ if (undoController == null) return;
455
+ if (status) {
456
+ // 启用撤销按钮
457
+ undoController.classList.add("undo");
458
+ undoController.classList.remove("undo-disabled");
459
+ undoController.addEventListener("click", this.cancelEvent);
460
+ return;
461
+ }
462
+ // 禁用撤销按钮
463
+ undoController.classList.add("undo-disabled");
464
+ undoController.classList.remove("undo");
465
+ undoController.removeEventListener("click", this.cancelEvent);
466
+ }
467
+ cancelEvent() {
468
+ takeOutHistory();
469
+ }
470
+ getUndoController() {
471
+ undoController = document.getElementById("undoPanel");
472
+ return undoController;
473
+ }
474
+ // 销毁截图容器
475
+ destroyDOM() {
476
+ if (screenShotController == null || toolController == null || optionIcoController == null || optionController == null || textInputController == null) return;
477
+ const plugInParameters = new PlugInParameters();
478
+ // 销毁dom
479
+ if (noScrollStatus) {
480
+ document.body.classList.remove("__screenshot-lock-scroll");
481
+ }
482
+ document.body.removeChild(screenShotController);
483
+ document.body.removeChild(toolController);
484
+ document.body.removeChild(optionIcoController);
485
+ document.body.removeChild(optionController);
486
+ document.body.removeChild(textInputController);
487
+ // document.body.removeChild(cutBoxSizeContainer);
488
+ if (document.body.classList.contains("no-cursor")) {
489
+ document.body.classList.remove("no-cursor");
490
+ }
491
+ if (resetScrollbarState) {
492
+ // 还原滚动条状态
493
+ document.documentElement.classList.remove("hidden-screen-shot-scroll");
494
+ document.body.classList.remove("hidden-screen-shot-scroll");
495
+ }
496
+ // 重置插件全局参数状态
497
+ plugInParameters.setInitStatus(true);
498
+ }
499
+ constructor(){
500
+ // 标识为true时则初始化数据
501
+ if (initStatus) {
502
+ // 初始化完成设置其值为false
503
+ initStatus = false;
504
+ screenShotController = null;
505
+ dragging = false;
506
+ toolController = null;
507
+ textInputController = null;
508
+ optionController = null;
509
+ optionIcoController = null;
510
+ optionTextSizeController = null;
511
+ brushSelectionController = null;
512
+ textSizeContainer = null;
513
+ // cutBoxSizeContainer = null;
514
+ cutOutBoxPosition = {
515
+ startX: 0,
516
+ startY: 0,
517
+ width: 0,
518
+ height: 0
519
+ };
520
+ toolClickStatus = false;
521
+ resetScrollbarState = false;
522
+ textEditState = false;
523
+ toolPositionStatus = false;
524
+ selectedColor = "#F53340";
525
+ toolName = "";
526
+ penSize = 2;
527
+ fontSize = 17;
528
+ mosaicPenSize = 10;
529
+ history = [];
530
+ undoClickNum = 0;
531
+ colorSelectController = null;
532
+ rightPanel = null;
533
+ colorSelectPanel = null;
534
+ undoController = null;
535
+ }
536
+ }
537
+ }
538
+ export { InitData as default };
@@ -0,0 +1,46 @@
1
+ export default class PlugInParameters {
2
+ constructor();
3
+ setInitStatus(status: boolean): void;
4
+ getInitStatus(): boolean;
5
+ getWebRtcStatus(): boolean;
6
+ setWebRtcStatus(status: boolean): void;
7
+ setScreenShotDom(dom: HTMLElement): void;
8
+ getCutBoxBdColor(): string;
9
+ setCutBoxBdColor(color: string): void;
10
+ getScreenShotDom(): HTMLElement;
11
+ getScreenFlow(): MediaStream;
12
+ setScreenFlow(stream: MediaStream): void;
13
+ getCanvasSize(): {
14
+ canvasWidth: number;
15
+ canvasHeight: number;
16
+ };
17
+ setCanvasSize(width: number, height: number): void;
18
+ getShowScreenDataStatus(): boolean;
19
+ setShowScreenDataStatus(status: boolean): void;
20
+ setMaskColor(color: {
21
+ r: number;
22
+ g: number;
23
+ b: number;
24
+ a: number;
25
+ }): void;
26
+ getMaskColor(): {
27
+ r: number;
28
+ g: number;
29
+ b: number;
30
+ a: number;
31
+ };
32
+ setWriteImgState(state: boolean): void;
33
+ getWriteImgState(): boolean;
34
+ setSaveCallback(saveFn: (code: number, msg: string) => void): void;
35
+ getSaveCallback(): (code: number, msg: string) => void;
36
+ setMaxUndoNum(num: number): void;
37
+ getMaxUndoNum(): number;
38
+ setRatioArrow(state: boolean): void;
39
+ getRatioArrow(): boolean;
40
+ setImgAutoFit(state: boolean): void;
41
+ getImgAutoFit(): boolean;
42
+ setSaveImgTitle(title: string): void;
43
+ getSaveImgTitle(): string;
44
+ setDestroyContainerState(state: boolean): void;
45
+ getDestroyContainerState(): boolean;
46
+ }