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,92 @@
1
+ import { nonNegativeData } from "./FixedData";
2
+ /**
3
+ * 缩放裁剪框
4
+ * @param currentX 当前鼠标X轴坐标
5
+ * @param currentY 当前鼠标Y轴坐标
6
+ * @param startX 裁剪框当前X轴坐标
7
+ * @param startY 裁剪框当前Y轴坐标
8
+ * @param width 裁剪框宽度
9
+ * @param height 裁剪框高度
10
+ * @param option 当前操作的节点
11
+ * @private
12
+ */ export function zoomCutOutBoxPosition(currentX, currentY, startX, startY, width, height, option) {
13
+ // 临时坐标
14
+ let tempStartX, tempStartY, tempWidth, tempHeight = 0;
15
+ // 判断操作方向
16
+ switch(option){
17
+ case 2:
18
+ tempStartY = currentY - (startY + height) > 0 ? startY + height : currentY;
19
+ tempHeight = nonNegativeData(height - (currentY - startY));
20
+ return {
21
+ tempStartX: startX,
22
+ tempStartY,
23
+ tempWidth: width,
24
+ tempHeight
25
+ };
26
+ case 3:
27
+ tempHeight = nonNegativeData(currentY - startY);
28
+ return {
29
+ tempStartX: startX,
30
+ tempStartY: startY,
31
+ tempWidth: width,
32
+ tempHeight
33
+ };
34
+ case 4:
35
+ tempStartX = currentX - (startX + width) > 0 ? startX + width : currentX;
36
+ tempWidth = nonNegativeData(width - (currentX - startX));
37
+ return {
38
+ tempStartX,
39
+ tempStartY: startY,
40
+ tempWidth,
41
+ tempHeight: height
42
+ };
43
+ case 5:
44
+ tempWidth = nonNegativeData(currentX - startX);
45
+ return {
46
+ tempStartX: startX,
47
+ tempStartY: startY,
48
+ tempWidth,
49
+ tempHeight: height
50
+ };
51
+ case 6:
52
+ tempStartX = currentX - (startX + width) > 0 ? startX + width : currentX;
53
+ tempStartY = currentY - (startY + height) > 0 ? startY + height : currentY;
54
+ tempWidth = nonNegativeData(width - (currentX - startX));
55
+ tempHeight = nonNegativeData(height - (currentY - startY));
56
+ return {
57
+ tempStartX,
58
+ tempStartY,
59
+ tempWidth,
60
+ tempHeight
61
+ };
62
+ case 7:
63
+ tempWidth = nonNegativeData(currentX - startX);
64
+ tempHeight = nonNegativeData(currentY - startY);
65
+ return {
66
+ tempStartX: startX,
67
+ tempStartY: startY,
68
+ tempWidth,
69
+ tempHeight
70
+ };
71
+ case 8:
72
+ tempStartY = currentY - (startY + height) > 0 ? startY + height : currentY;
73
+ tempWidth = nonNegativeData(currentX - startX);
74
+ tempHeight = nonNegativeData(height - (currentY - startY));
75
+ return {
76
+ tempStartX: startX,
77
+ tempStartY,
78
+ tempWidth,
79
+ tempHeight
80
+ };
81
+ case 9:
82
+ tempStartX = currentX - (startX + width) > 0 ? startX + width : currentX;
83
+ tempWidth = nonNegativeData(width - (currentX - startX));
84
+ tempHeight = nonNegativeData(currentY - startY);
85
+ return {
86
+ tempStartX,
87
+ tempStartY: startY,
88
+ tempWidth,
89
+ tempHeight
90
+ };
91
+ }
92
+ }
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ id: number;
3
+ title: string;
4
+ }[];
5
+ export default _default;
@@ -0,0 +1,46 @@
1
+ export default [
2
+ {
3
+ id: 1,
4
+ title: "square"
5
+ },
6
+ {
7
+ id: 2,
8
+ title: "round"
9
+ },
10
+ {
11
+ id: 3,
12
+ title: "right-top"
13
+ },
14
+ {
15
+ id: 4,
16
+ title: "brush"
17
+ },
18
+ {
19
+ id: 5,
20
+ title: "mosaicPen"
21
+ },
22
+ {
23
+ id: 6,
24
+ title: "text"
25
+ },
26
+ {
27
+ id: 7,
28
+ title: "separateLine"
29
+ },
30
+ {
31
+ id: 8,
32
+ title: "save"
33
+ },
34
+ {
35
+ id: 9,
36
+ title: "undo"
37
+ },
38
+ {
39
+ id: 10,
40
+ title: "close"
41
+ },
42
+ {
43
+ id: 11,
44
+ title: "confirm"
45
+ }
46
+ ];
@@ -0,0 +1,24 @@
1
+ import { screenShotType } from "../type/ComponentType";
2
+ export default class CreateDom {
3
+ private readonly screenShotController;
4
+ private readonly toolController;
5
+ private readonly optionIcoController;
6
+ private readonly optionController;
7
+ private readonly textInputController;
8
+ private readonly completeCallback;
9
+ private readonly closeCallback;
10
+ private readonly hiddenIcoArr;
11
+ private readonly toolbar;
12
+ private readonly textFontSizeList;
13
+ constructor(options: screenShotType);
14
+ private setToolBarIco;
15
+ private setTextSizeSelectPanel;
16
+ private setBrushSelectPanel;
17
+ private setTextInputPanel;
18
+ private setAllControllerId;
19
+ private hiddenAllDom;
20
+ private setDomToBody;
21
+ private clearBody;
22
+ private setOptionIcoClassName;
23
+ private filterHideIcon;
24
+ }
@@ -0,0 +1,304 @@
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
2
+ import toolbar from "../config/Toolbar";
3
+ import { toolClickEvent } from "../split-methods/ToolClickEvent";
4
+ import { setBrushSize, setMosaicPenSize } from "../common-methods/SetBrushSize";
5
+ import { selectColor } from "../common-methods/SelectColor";
6
+ import { getColor } from "../common-methods/GetColor";
7
+ import { getTextSize, hiddenColorPanelStatus, hiddenTextSizeOptionStatus, selectTextSize, setTextSize } from "../common-methods/SelectTextSize";
8
+ class CreateDom {
9
+ // 渲染截图工具栏图标
10
+ setToolBarIco() {
11
+ for(let i = 0; i < this.toolbar.length; i++){
12
+ const item = this.toolbar[i];
13
+ // 判断是否有需要隐藏的图标
14
+ let icoHiddenStatus = false;
15
+ for(let j = 0; j < this.hiddenIcoArr.length; j++){
16
+ if (this.hiddenIcoArr[j] === item.title) {
17
+ icoHiddenStatus = true;
18
+ break;
19
+ }
20
+ }
21
+ // 图标隐藏状态为true则直接跳过本次循环
22
+ if (icoHiddenStatus) continue;
23
+ const itemPanel = document.createElement("div");
24
+ // 撤销按钮单独处理
25
+ if (item.title == "undo") {
26
+ itemPanel.className = `item-panel undo-disabled`;
27
+ itemPanel.id = "undoPanel";
28
+ } else {
29
+ itemPanel.className = `item-panel ${item.title}`;
30
+ itemPanel.addEventListener("click", (e)=>{
31
+ toolClickEvent(item.title, item.id, e, this.completeCallback, this.closeCallback);
32
+ });
33
+ }
34
+ itemPanel.setAttribute("data-title", item.title);
35
+ itemPanel.setAttribute("data-id", item.id + "");
36
+ this.toolController.appendChild(itemPanel);
37
+ }
38
+ // 有需要隐藏的截图工具栏时,则修改其最小宽度
39
+ if (this.hiddenIcoArr.length > 0) {
40
+ this.toolController.style.minWidth = "24px";
41
+ }
42
+ }
43
+ // 渲染文字大小选择容器
44
+ setTextSizeSelectPanel() {
45
+ // 创建文字展示容器
46
+ const textSizePanel = document.createElement("div");
47
+ textSizePanel.className = "text-size-panel";
48
+ textSizePanel.innerText = `${getTextSize()} px`;
49
+ textSizePanel.id = "textSizePanel";
50
+ // 创建文字大小选择容器
51
+ const textSelectPanel = document.createElement("div");
52
+ textSelectPanel.className = "text-select-panel";
53
+ textSelectPanel.id = "textSelectPanel";
54
+ // 创建文字选择下拉
55
+ for(let i = 0; i < this.textFontSizeList.length; i++){
56
+ const itemPanel = document.createElement("div");
57
+ const size = this.textFontSizeList[i];
58
+ itemPanel.className = "text-item";
59
+ itemPanel.setAttribute("data-value", `${size}`);
60
+ itemPanel.innerText = `${size} px`;
61
+ // 添加点击监听
62
+ itemPanel.addEventListener("click", ()=>{
63
+ // 隐藏容器
64
+ textSelectPanel.style.display = "none";
65
+ const currentTextSize = itemPanel.getAttribute("data-value");
66
+ // 容器赋值
67
+ textSizePanel.innerText = `${currentTextSize} px`;
68
+ if (currentTextSize) {
69
+ setTextSize(+currentTextSize);
70
+ }
71
+ });
72
+ textSelectPanel.appendChild(itemPanel);
73
+ }
74
+ textSizePanel.style.display = "none";
75
+ textSelectPanel.style.display = "none";
76
+ // 容器点击时,展示文字大小选择容器
77
+ textSizePanel.addEventListener("click", ()=>{
78
+ selectTextSize();
79
+ });
80
+ this.optionController.appendChild(textSizePanel);
81
+ this.optionController.appendChild(textSelectPanel);
82
+ }
83
+ // 渲染画笔大小选择图标与颜色选择容器
84
+ setBrushSelectPanel() {
85
+ // 创建画笔选择容器
86
+ const brushSelectPanel = document.createElement("div");
87
+ brushSelectPanel.id = "brushSelectPanel";
88
+ brushSelectPanel.className = "brush-select-panel";
89
+ for(let i = 0; i < 3; i++){
90
+ // 创建画笔图标容器
91
+ const itemPanel = document.createElement("div");
92
+ itemPanel.className = "item-panel";
93
+ switch(i){
94
+ case 0:
95
+ itemPanel.classList.add("brush-small");
96
+ itemPanel.classList.add("brush-small-active");
97
+ itemPanel.addEventListener("click", (e)=>{
98
+ setBrushSize("small", 1, e);
99
+ setMosaicPenSize("small", 1, e);
100
+ });
101
+ break;
102
+ case 1:
103
+ itemPanel.classList.add("brush-medium");
104
+ itemPanel.addEventListener("click", (e)=>{
105
+ setBrushSize("medium", 2, e);
106
+ setMosaicPenSize("medium", 2, e);
107
+ });
108
+ break;
109
+ case 2:
110
+ itemPanel.classList.add("brush-big");
111
+ itemPanel.addEventListener("click", (e)=>{
112
+ setBrushSize("big", 3, e);
113
+ setMosaicPenSize("big", 3, e);
114
+ });
115
+ break;
116
+ }
117
+ brushSelectPanel.appendChild(itemPanel);
118
+ }
119
+ // 右侧颜色选择容器
120
+ const rightPanel = document.createElement("div");
121
+ rightPanel.className = "right-panel";
122
+ // 创建颜色选择容器
123
+ const colorSelectPanel = document.createElement("div");
124
+ colorSelectPanel.className = "color-select-panel";
125
+ colorSelectPanel.id = "colorSelectPanel";
126
+ colorSelectPanel.addEventListener("click", ()=>{
127
+ selectColor();
128
+ });
129
+ // 创建颜色显示容器
130
+ const colorPanel = document.createElement("div");
131
+ colorPanel.id = "colorPanel";
132
+ colorPanel.className = "color-panel";
133
+ colorPanel.style.display = "none";
134
+ for(let i = 0; i < 10; i++){
135
+ const colorItem = document.createElement("div");
136
+ colorItem.className = "color-item";
137
+ colorItem.addEventListener("click", ()=>{
138
+ getColor(i + 1);
139
+ });
140
+ colorItem.setAttribute("data-index", i + "");
141
+ colorPanel.appendChild(colorItem);
142
+ }
143
+ rightPanel.appendChild(colorPanel);
144
+ rightPanel.appendChild(colorSelectPanel);
145
+ rightPanel.id = "rightPanel";
146
+ // 创建颜色下拉箭头选择容器
147
+ const pullDownArrow = document.createElement("div");
148
+ pullDownArrow.className = "pull-down-arrow";
149
+ pullDownArrow.addEventListener("click", ()=>{
150
+ selectColor();
151
+ });
152
+ rightPanel.appendChild(pullDownArrow);
153
+ // 向画笔绘制选项容器追加画笔选择和颜色显示容器
154
+ this.optionController.appendChild(brushSelectPanel);
155
+ this.optionController.appendChild(rightPanel);
156
+ }
157
+ // 渲染文本输入区域容器
158
+ setTextInputPanel() {
159
+ // 让div可编辑
160
+ this.textInputController.contentEditable = "true";
161
+ // 关闭拼写检查
162
+ this.textInputController.spellcheck = false;
163
+ }
164
+ // 为所有Dom设置id
165
+ setAllControllerId() {
166
+ this.screenShotController.id = "screenShotContainer";
167
+ this.toolController.id = "toolPanel";
168
+ this.optionIcoController.id = "optionIcoController";
169
+ this.optionController.id = "optionPanel";
170
+ // this.cutBoxSizeContainer.id = "cutBoxSizePanel";
171
+ this.textInputController.id = "textInputPanel";
172
+ }
173
+ // 隐藏所有dom
174
+ hiddenAllDom() {
175
+ this.screenShotController.style.display = "none";
176
+ this.toolController.style.display = "none";
177
+ this.optionIcoController.style.display = "none";
178
+ this.optionController.style.display = "none";
179
+ // this.cutBoxSizeContainer.style.display = "none";
180
+ this.textInputController.style.display = "none";
181
+ }
182
+ // 将截图相关dom渲染至body
183
+ setDomToBody() {
184
+ this.clearBody();
185
+ document.body.appendChild(this.screenShotController);
186
+ document.body.appendChild(this.toolController);
187
+ document.body.appendChild(this.optionIcoController);
188
+ document.body.appendChild(this.optionController);
189
+ // document.body.appendChild(this.cutBoxSizeContainer);
190
+ document.body.appendChild(this.textInputController);
191
+ }
192
+ // 清除截图相关dom
193
+ clearBody() {
194
+ var _document_getElementById, _document_getElementById1, _document_getElementById2, _document_getElementById3, // document.getElementById("cutBoxSizePanel")?.remove();
195
+ _document_getElementById4;
196
+ (_document_getElementById = document.getElementById("screenShotContainer")) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.remove();
197
+ (_document_getElementById1 = document.getElementById("toolPanel")) === null || _document_getElementById1 === void 0 ? void 0 : _document_getElementById1.remove();
198
+ (_document_getElementById2 = document.getElementById("optionIcoController")) === null || _document_getElementById2 === void 0 ? void 0 : _document_getElementById2.remove();
199
+ (_document_getElementById3 = document.getElementById("optionPanel")) === null || _document_getElementById3 === void 0 ? void 0 : _document_getElementById3.remove();
200
+ (_document_getElementById4 = document.getElementById("textInputPanel")) === null || _document_getElementById4 === void 0 ? void 0 : _document_getElementById4.remove();
201
+ }
202
+ // 设置画笔绘制选项顶部ico样式
203
+ setOptionIcoClassName() {
204
+ this.optionIcoController.className = "ico-panel";
205
+ }
206
+ // 将需要隐藏的图标放入对应的数组中
207
+ filterHideIcon(icons) {
208
+ switch(icons){
209
+ case "rightTop":
210
+ this.hiddenIcoArr.push("right-top");
211
+ break;
212
+ default:
213
+ this.hiddenIcoArr.push(icons);
214
+ break;
215
+ }
216
+ }
217
+ constructor(options){
218
+ // 截图区域canvas容器
219
+ _define_property(this, "screenShotController", void 0);
220
+ // 截图工具栏容器
221
+ _define_property(this, "toolController", void 0);
222
+ // 绘制选项顶部ico容器
223
+ _define_property(this, "optionIcoController", void 0);
224
+ // 画笔绘制选项容器
225
+ _define_property(this, "optionController", void 0);
226
+ // 裁剪框大小显示容器
227
+ // private readonly cutBoxSizeContainer: HTMLDivElement;
228
+ // 文字工具输入容器
229
+ _define_property(this, "textInputController", void 0);
230
+ // 截图完成回调函数
231
+ _define_property(this, "completeCallback", void 0);
232
+ // 截图关闭毁掉函数
233
+ _define_property(this, "closeCallback", void 0);
234
+ // 需要隐藏的图标
235
+ _define_property(this, "hiddenIcoArr", void 0);
236
+ // 截图工具栏图标
237
+ _define_property(this, "toolbar", void 0);
238
+ _define_property(this, "textFontSizeList", [
239
+ 12,
240
+ 13,
241
+ 14,
242
+ 15,
243
+ 16,
244
+ 17,
245
+ 20,
246
+ 24,
247
+ 36,
248
+ 48,
249
+ 64,
250
+ 72,
251
+ 96
252
+ ]);
253
+ this.screenShotController = document.createElement("canvas");
254
+ this.toolController = document.createElement("div");
255
+ this.optionIcoController = document.createElement("div");
256
+ this.optionController = document.createElement("div");
257
+ // this.cutBoxSizeContainer = document.createElement("div");
258
+ this.textInputController = document.createElement("div");
259
+ this.completeCallback = options === null || options === void 0 ? void 0 : options.completeCallback;
260
+ this.closeCallback = options === null || options === void 0 ? void 0 : options.closeCallback;
261
+ this.hiddenIcoArr = [];
262
+ this.optionController.addEventListener("click", (evt)=>{
263
+ const target = evt.target;
264
+ if (target.id === "colorSelectPanel" || target.id === "textSizePanel") {
265
+ return;
266
+ }
267
+ // 点击工具栏的其他位置则隐藏文字大小选择面板与颜色选择面板
268
+ hiddenTextSizeOptionStatus();
269
+ hiddenColorPanelStatus();
270
+ });
271
+ // 成功回调函数不存在则设置一个默认的
272
+ if (!options || !Object.prototype.hasOwnProperty.call(options, "completeCallback")) {
273
+ this.completeCallback = (imgInfo)=>{
274
+ sessionStorage.setItem("screenShotImg", JSON.stringify(imgInfo));
275
+ };
276
+ }
277
+ // 筛选需要隐藏的图标
278
+ if (options === null || options === void 0 ? void 0 : options.hiddenToolIco) {
279
+ for(const iconKey in options.hiddenToolIco){
280
+ if (options.hiddenToolIco[iconKey]) {
281
+ this.filterHideIcon(iconKey);
282
+ }
283
+ }
284
+ }
285
+ // 为所有dom设置id
286
+ this.setAllControllerId();
287
+ // 为画笔绘制选项角标设置class
288
+ this.setOptionIcoClassName();
289
+ this.toolbar = toolbar;
290
+ // 渲染工具栏
291
+ this.setToolBarIco();
292
+ // 渲染文字大小选择容器
293
+ this.setTextSizeSelectPanel();
294
+ // 渲染画笔相关选项
295
+ this.setBrushSelectPanel();
296
+ // 渲染文本输入
297
+ this.setTextInputPanel();
298
+ // 渲染页面
299
+ this.setDomToBody();
300
+ // 隐藏所有dom
301
+ this.hiddenAllDom();
302
+ }
303
+ }
304
+ export { CreateDom as default };
@@ -0,0 +1,78 @@
1
+ import { positionInfoType, textInfoType } from "../type/ComponentType";
2
+ export default class InitData {
3
+ constructor();
4
+ setInitStatus(status: boolean): void;
5
+ setScreenShotInfo(width: number, height: number): void;
6
+ setScreenShotPosition(left: number, top: number): void;
7
+ showScreenShotPanel(): void;
8
+ getScreenShotContainer(): HTMLCanvasElement;
9
+ getToolController(): HTMLDivElement;
10
+ getTextInputController(): HTMLDivElement;
11
+ getTextStatus(): boolean;
12
+ getScreenShotImageController(): HTMLCanvasElement;
13
+ setScreenShotImageController(imageController: HTMLCanvasElement): void;
14
+ setToolStatus(status: boolean): void;
15
+ setTextEditState(state: boolean): void;
16
+ getTextEditState(): boolean;
17
+ setTextStatus(status: boolean): void;
18
+ setToolInfo(left: number, top: number): void;
19
+ getToolClickStatus(): boolean;
20
+ setToolClickStatus(status: boolean): void;
21
+ setResetScrollbarState(state: boolean): void;
22
+ getResetScrollbarState(): boolean;
23
+ getCutOutBoxPosition(): positionInfoType;
24
+ getDragging(): boolean;
25
+ setDragging(status: boolean): void;
26
+ getDraggingTrim(): boolean;
27
+ getToolPositionStatus(): boolean;
28
+ setToolPositionStatus(status: boolean): void;
29
+ setDraggingTrim(status: boolean): void;
30
+ setCutOutBoxPosition(mouseX: number, mouseY: number, width: number, height: number): void;
31
+ setFontSize(size: number): void;
32
+ setOptionStatus(status: boolean): void;
33
+ getFontSize(): number;
34
+ setTextSizeOptionStatus(status: boolean): void;
35
+ setTextSizePanelStatus(status: boolean): void;
36
+ setBrushSelectionStatus(status: boolean): void;
37
+ hiddenOptionIcoStatus(): void;
38
+ getOptionIcoController(): HTMLDivElement;
39
+ getTextSizeContainer(): HTMLDivElement;
40
+ getOptionTextSizeController(): HTMLDivElement;
41
+ getBrushSelectionController(): HTMLDivElement;
42
+ getOptionController(): HTMLDivElement;
43
+ setOptionPosition(position: number): void;
44
+ getToolPosition(): {
45
+ left: number;
46
+ top: number;
47
+ };
48
+ getSelectedColor(): string;
49
+ setSelectedColor(color: string): void;
50
+ getColorSelectPanel(): HTMLElement;
51
+ getToolName(): string;
52
+ setToolName(itemName: string): void;
53
+ getPenSize(): number;
54
+ setPenSize(size: number): void;
55
+ getMosaicPenSize(): number;
56
+ setMosaicPenSize(size: number): void;
57
+ getBorderSize(): number;
58
+ getHistory(): Record<string, any>[];
59
+ shiftHistory(): Record<string, any>;
60
+ popHistory(): Record<string, any>;
61
+ pushHistory(item: Record<string, any>): void;
62
+ getUndoClickNum(): number;
63
+ setUndoClickNum(clickNumber: number): void;
64
+ getColorPanel(): HTMLElement;
65
+ setColorPanelStatus(status: boolean): void;
66
+ getNoScrollStatus(): boolean;
67
+ setNoScrollStatus(status?: boolean): void;
68
+ setActiveToolName(toolName: string): void;
69
+ getActiveToolName(): string;
70
+ setTextInfo(info: textInfoType): void;
71
+ getTextInfo(): textInfoType;
72
+ getRightPanel(): HTMLElement;
73
+ setRightPanel(status: boolean): void;
74
+ setUndoStatus(status: boolean): void;
75
+ cancelEvent(): void;
76
+ getUndoController(): HTMLElement;
77
+ destroyDOM(): void;
78
+ }