@inweb/client 25.2.2 → 25.2.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 (222) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +70 -70
  3. package/dist/client.js +12739 -12352
  4. package/dist/client.js.map +1 -1
  5. package/dist/client.min.js +1 -1
  6. package/dist/client.module.js +588 -157
  7. package/dist/client.module.js.map +1 -1
  8. package/lib/Api/Assembly.d.ts +338 -338
  9. package/lib/Api/ClashTest.d.ts +175 -175
  10. package/lib/Api/Client.d.ts +451 -451
  11. package/lib/Api/ClientEvents.d.ts +28 -28
  12. package/lib/Api/File.d.ts +567 -567
  13. package/lib/Api/HttpClient.d.ts +12 -12
  14. package/lib/Api/IAssembly.d.ts +13 -13
  15. package/lib/Api/IFile.d.ts +45 -45
  16. package/lib/Api/IHttpClient.d.ts +10 -10
  17. package/lib/Api/IUser.d.ts +10 -10
  18. package/lib/Api/Job.d.ts +141 -141
  19. package/lib/Api/Member.d.ts +84 -84
  20. package/lib/Api/Model.d.ts +146 -146
  21. package/lib/Api/Permission.d.ts +92 -92
  22. package/lib/Api/Project.d.ts +246 -246
  23. package/lib/Api/Role.d.ts +81 -81
  24. package/lib/Api/User.d.ts +196 -196
  25. package/lib/Api/impl/FetchError.d.ts +17 -17
  26. package/lib/Api/impl/Utils.d.ts +32 -32
  27. package/lib/Api/impl/http.d.ts +66 -66
  28. package/lib/ConvetMath.d.ts +28 -28
  29. package/lib/Viewer/CanvasEvents.d.ts +1 -1
  30. package/lib/Viewer/Commands/ApplyModelTransform.d.ts +1 -1
  31. package/lib/Viewer/Commands/ClearMarkup.d.ts +1 -1
  32. package/lib/Viewer/Commands/ClearSlices.d.ts +1 -1
  33. package/lib/Viewer/Commands/CreatePreview.d.ts +1 -1
  34. package/lib/Viewer/Commands/Explode.d.ts +1 -1
  35. package/lib/Viewer/Commands/GetDefaultViewPositions.d.ts +1 -1
  36. package/lib/Viewer/Commands/GetModels.d.ts +1 -1
  37. package/lib/Viewer/Commands/GetSelected.d.ts +1 -1
  38. package/lib/Viewer/Commands/HideSelected.d.ts +1 -1
  39. package/lib/Viewer/Commands/IsolateSelected.d.ts +1 -1
  40. package/lib/Viewer/Commands/RegenerateAll.d.ts +1 -1
  41. package/lib/Viewer/Commands/ResetView.d.ts +1 -1
  42. package/lib/Viewer/Commands/SelectModel.d.ts +1 -1
  43. package/lib/Viewer/Commands/SetActiveDragger.d.ts +1 -1
  44. package/lib/Viewer/Commands/SetDefaultViewPosition.d.ts +1 -1
  45. package/lib/Viewer/Commands/SetMarkupColor.d.ts +1 -1
  46. package/lib/Viewer/Commands/SetSelected.d.ts +1 -1
  47. package/lib/Viewer/Commands/ShowAll.d.ts +1 -1
  48. package/lib/Viewer/Commands/Unselect.d.ts +1 -1
  49. package/lib/Viewer/Commands/ZoomToExtents.d.ts +1 -1
  50. package/lib/Viewer/Commands/ZoomToObjects.d.ts +1 -1
  51. package/lib/Viewer/Commands/ZoomToSelected.d.ts +1 -1
  52. package/lib/Viewer/Commands.d.ts +2 -2
  53. package/lib/Viewer/Draggers/Actions/OrbitAction.d.ts +21 -21
  54. package/lib/Viewer/Draggers/Actions/PanAction.d.ts +17 -17
  55. package/lib/Viewer/Draggers/Actions/ZoomAction.d.ts +7 -7
  56. package/lib/Viewer/Draggers/Common/Geometry.d.ts +114 -114
  57. package/lib/Viewer/Draggers/Common/GestureManager.d.ts +40 -40
  58. package/lib/Viewer/Draggers/Common/OdBaseDragger.d.ts +53 -53
  59. package/lib/Viewer/Draggers/Common/OdaGeAction.d.ts +29 -29
  60. package/lib/Viewer/Draggers/MeasureLineDragger/MeasureLineItem.d.ts +30 -30
  61. package/lib/Viewer/Draggers/MeasureLineDragger/MeasureUtils.d.ts +19 -19
  62. package/lib/Viewer/Draggers/MeasureLineDragger/index.d.ts +23 -23
  63. package/lib/Viewer/Draggers/OdBaseCuttingPlaneDragger.d.ts +26 -26
  64. package/lib/Viewer/Draggers/OdCuttingPlaneXAxisDragger.d.ts +7 -7
  65. package/lib/Viewer/Draggers/OdCuttingPlaneYAxisDragger.d.ts +7 -7
  66. package/lib/Viewer/Draggers/OdCuttingPlaneZAxisDragger.d.ts +7 -7
  67. package/lib/Viewer/Draggers/OdOrbitDragger.d.ts +14 -14
  68. package/lib/Viewer/Draggers/OdPanDragger.d.ts +11 -11
  69. package/lib/Viewer/Draggers/OdZoomDragger.d.ts +11 -11
  70. package/lib/Viewer/Draggers/OdZoomWheelDragger.d.ts +10 -10
  71. package/lib/Viewer/Draggers/OdZoomWindowDragger/OdSelectionFrame.d.ts +18 -18
  72. package/lib/Viewer/Draggers/OdZoomWindowDragger/index.d.ts +13 -13
  73. package/lib/Viewer/Draggers/OdaLineDragger.d.ts +14 -14
  74. package/lib/Viewer/Draggers/OdaTextDragger.d.ts +15 -15
  75. package/lib/Viewer/Draggers/OdaWalkDragger.d.ts +29 -29
  76. package/lib/Viewer/Draggers/OrbitAroundBuildingDragger.d.ts +18 -18
  77. package/lib/Viewer/EventEmitter2.d.ts +53 -53
  78. package/lib/Viewer/ICommands.d.ts +24 -24
  79. package/lib/Viewer/IEventEmitter2.d.ts +12 -12
  80. package/lib/Viewer/IViewer.d.ts +26 -26
  81. package/lib/Viewer/Loaders/BaseLoader.d.ts +10 -10
  82. package/lib/Viewer/Loaders/LoaderFactory.d.ts +9 -9
  83. package/lib/Viewer/Loaders/TCSLoader.d.ts +4 -4
  84. package/lib/Viewer/Loaders/UpdaterController.d.ts +14 -14
  85. package/lib/Viewer/Loaders/VsfXLoader.d.ts +4 -4
  86. package/lib/Viewer/Loaders/VsfXPartialLoader.d.ts +4 -4
  87. package/lib/Viewer/Markup/Api/IMarkupArrow.d.ts +21 -11
  88. package/lib/Viewer/Markup/Api/IMarkupCloud.d.ts +15 -0
  89. package/lib/Viewer/Markup/Api/IMarkupColorable.d.ts +4 -4
  90. package/lib/Viewer/Markup/Api/IMarkupEllipse.d.ts +14 -14
  91. package/lib/Viewer/Markup/Api/IMarkupImage.d.ts +14 -14
  92. package/lib/Viewer/Markup/Api/IMarkupLine.d.ts +18 -10
  93. package/lib/Viewer/Markup/Api/IMarkupObject.d.ts +11 -11
  94. package/lib/Viewer/Markup/Api/IMarkupRectangle.d.ts +14 -14
  95. package/lib/Viewer/Markup/Api/IMarkupText.d.ts +12 -12
  96. package/lib/Viewer/Markup/Api/Impl/Konva/KonvaArrow.d.ts +46 -31
  97. package/lib/Viewer/Markup/Api/Impl/Konva/KonvaCloud.d.ts +36 -0
  98. package/lib/Viewer/Markup/Api/Impl/Konva/KonvaEllipse.d.ts +40 -39
  99. package/lib/Viewer/Markup/Api/Impl/Konva/KonvaImage.d.ts +36 -35
  100. package/lib/Viewer/Markup/Api/Impl/Konva/KonvaLine.d.ts +35 -31
  101. package/lib/Viewer/Markup/Api/Impl/Konva/KonvaRectangle.d.ts +38 -37
  102. package/lib/Viewer/Markup/Api/Impl/Konva/KonvaText.d.ts +37 -36
  103. package/lib/Viewer/Markup/IMarkup.d.ts +38 -37
  104. package/lib/Viewer/Markup/Impl/Konva/KonvaMarkup.d.ts +71 -62
  105. package/lib/Viewer/Markup/Impl/Konva/MarkupColor.d.ts +18 -18
  106. package/lib/Viewer/Markup/Impl/Visualize/VisualizeMarkup.d.ts +32 -32
  107. package/lib/Viewer/Markup/MarkupFactory.d.ts +6 -6
  108. package/lib/Viewer/Options.d.ts +227 -227
  109. package/lib/Viewer/OptionsEvents.d.ts +25 -25
  110. package/lib/Viewer/Viewer.d.ts +352 -352
  111. package/lib/Viewer/ViewerCommands.d.ts +22 -22
  112. package/lib/Viewer/ViewerEvents.d.ts +600 -600
  113. package/lib/Viewer/utils.d.ts +3 -3
  114. package/lib/index.d.ts +23 -23
  115. package/package.json +38 -32
  116. package/src/Api/Assembly.ts +678 -678
  117. package/src/Api/ClashTest.ts +290 -290
  118. package/src/Api/Client.ts +816 -816
  119. package/src/Api/ClientEvents.ts +31 -31
  120. package/src/Api/File.ts +962 -962
  121. package/src/Api/HttpClient.ts +73 -73
  122. package/src/Api/IAssembly.ts +37 -37
  123. package/src/Api/IFile.ts +74 -74
  124. package/src/Api/IHttpClient.ts +50 -50
  125. package/src/Api/IUser.ts +33 -33
  126. package/src/Api/Job.ts +253 -253
  127. package/src/Api/Member.ts +161 -161
  128. package/src/Api/Model.ts +259 -259
  129. package/src/Api/Permission.ts +173 -173
  130. package/src/Api/Project.ts +479 -479
  131. package/src/Api/Role.ts +158 -158
  132. package/src/Api/User.ts +357 -357
  133. package/src/Api/impl/FetchError.ts +48 -48
  134. package/src/Api/impl/Utils.ts +367 -367
  135. package/src/Api/impl/http.ts +92 -92
  136. package/src/ConvetMath.ts +372 -372
  137. package/src/Viewer/CanvasEvents.ts +41 -41
  138. package/src/Viewer/Commands/ApplyModelTransform.ts +70 -70
  139. package/src/Viewer/Commands/ClearMarkup.ts +28 -28
  140. package/src/Viewer/Commands/ClearSlices.ts +27 -27
  141. package/src/Viewer/Commands/CreatePreview.ts +33 -33
  142. package/src/Viewer/Commands/Explode.ts +38 -38
  143. package/src/Viewer/Commands/GetDefaultViewPositions.ts +36 -36
  144. package/src/Viewer/Commands/GetModels.ts +43 -43
  145. package/src/Viewer/Commands/GetSelected.ts +58 -58
  146. package/src/Viewer/Commands/HideSelected.ts +37 -37
  147. package/src/Viewer/Commands/IsolateSelected.ts +37 -37
  148. package/src/Viewer/Commands/RegenerateAll.ts +37 -37
  149. package/src/Viewer/Commands/ResetView.ts +43 -43
  150. package/src/Viewer/Commands/SelectModel.ts +52 -52
  151. package/src/Viewer/Commands/SetActiveDragger.ts +29 -29
  152. package/src/Viewer/Commands/SetDefaultViewPosition.ts +50 -50
  153. package/src/Viewer/Commands/SetMarkupColor.ts +29 -29
  154. package/src/Viewer/Commands/SetSelected.ts +47 -47
  155. package/src/Viewer/Commands/ShowAll.ts +37 -37
  156. package/src/Viewer/Commands/Unselect.ts +37 -37
  157. package/src/Viewer/Commands/ZoomToExtents.ts +43 -43
  158. package/src/Viewer/Commands/ZoomToObjects.ts +47 -47
  159. package/src/Viewer/Commands/ZoomToSelected.ts +39 -39
  160. package/src/Viewer/Commands.ts +81 -81
  161. package/src/Viewer/Draggers/Actions/OrbitAction.ts +250 -250
  162. package/src/Viewer/Draggers/Actions/PanAction.ts +102 -102
  163. package/src/Viewer/Draggers/Actions/ZoomAction.ts +45 -45
  164. package/src/Viewer/Draggers/Common/Geometry.ts +152 -152
  165. package/src/Viewer/Draggers/Common/GestureManager.ts +263 -263
  166. package/src/Viewer/Draggers/Common/OdBaseDragger.ts +270 -270
  167. package/src/Viewer/Draggers/Common/OdaGeAction.ts +146 -146
  168. package/src/Viewer/Draggers/MeasureLineDragger/MeasureLineItem.ts +248 -248
  169. package/src/Viewer/Draggers/MeasureLineDragger/MeasureUtils.ts +182 -182
  170. package/src/Viewer/Draggers/MeasureLineDragger/index.ts +166 -166
  171. package/src/Viewer/Draggers/OdBaseCuttingPlaneDragger.ts +182 -182
  172. package/src/Viewer/Draggers/OdCuttingPlaneXAxisDragger.ts +53 -53
  173. package/src/Viewer/Draggers/OdCuttingPlaneYAxisDragger.ts +53 -53
  174. package/src/Viewer/Draggers/OdCuttingPlaneZAxisDragger.ts +53 -53
  175. package/src/Viewer/Draggers/OdOrbitDragger.ts +70 -70
  176. package/src/Viewer/Draggers/OdPanDragger.ts +62 -62
  177. package/src/Viewer/Draggers/OdZoomDragger.ts +59 -59
  178. package/src/Viewer/Draggers/OdZoomWheelDragger.ts +103 -103
  179. package/src/Viewer/Draggers/OdZoomWindowDragger/OdSelectionFrame.ts +123 -123
  180. package/src/Viewer/Draggers/OdZoomWindowDragger/index.ts +75 -75
  181. package/src/Viewer/Draggers/OdaLineDragger.ts +80 -80
  182. package/src/Viewer/Draggers/OdaTextDragger.ts +118 -118
  183. package/src/Viewer/Draggers/OdaWalkDragger.ts +278 -278
  184. package/src/Viewer/Draggers/OrbitAroundBuildingDragger.ts +184 -184
  185. package/src/Viewer/EventEmitter2.ts +116 -116
  186. package/src/Viewer/ICommands.ts +53 -53
  187. package/src/Viewer/IEventEmitter2.ts +36 -36
  188. package/src/Viewer/IViewer.ts +55 -55
  189. package/src/Viewer/Loaders/BaseLoader.ts +40 -40
  190. package/src/Viewer/Loaders/LoaderFactory.ts +44 -44
  191. package/src/Viewer/Loaders/TCSLoader.ts +82 -82
  192. package/src/Viewer/Loaders/UpdaterController.ts +36 -36
  193. package/src/Viewer/Loaders/VsfXLoader.ts +87 -87
  194. package/src/Viewer/Loaders/VsfXPartialLoader.ts +208 -208
  195. package/src/Viewer/Markup/Api/IMarkupArrow.ts +12 -15
  196. package/src/Viewer/Markup/Api/IMarkupCloud.ts +15 -0
  197. package/src/Viewer/Markup/Api/IMarkupColorable.ts +4 -4
  198. package/src/Viewer/Markup/Api/IMarkupEllipse.ts +15 -15
  199. package/src/Viewer/Markup/Api/IMarkupImage.ts +15 -15
  200. package/src/Viewer/Markup/Api/IMarkupLine.ts +20 -10
  201. package/src/Viewer/Markup/Api/IMarkupObject.ts +15 -15
  202. package/src/Viewer/Markup/Api/IMarkupRectangle.ts +15 -15
  203. package/src/Viewer/Markup/Api/IMarkupText.ts +12 -12
  204. package/src/Viewer/Markup/Api/Impl/Konva/KonvaArrow.ts +117 -119
  205. package/src/Viewer/Markup/Api/Impl/Konva/KonvaCloud.ts +208 -0
  206. package/src/Viewer/Markup/Api/Impl/Konva/KonvaEllipse.ts +118 -113
  207. package/src/Viewer/Markup/Api/Impl/Konva/KonvaImage.ts +123 -121
  208. package/src/Viewer/Markup/Api/Impl/Konva/KonvaLine.ts +130 -99
  209. package/src/Viewer/Markup/Api/Impl/Konva/KonvaRectangle.ts +119 -113
  210. package/src/Viewer/Markup/Api/Impl/Konva/KonvaText.ts +110 -104
  211. package/src/Viewer/Markup/IMarkup.ts +40 -39
  212. package/src/Viewer/Markup/Impl/Konva/KonvaMarkup.ts +1208 -872
  213. package/src/Viewer/Markup/Impl/Konva/MarkupColor.ts +39 -39
  214. package/src/Viewer/Markup/Impl/Visualize/VisualizeMarkup.ts +273 -273
  215. package/src/Viewer/Markup/MarkupFactory.ts +32 -32
  216. package/src/Viewer/Options.ts +502 -502
  217. package/src/Viewer/OptionsEvents.ts +28 -28
  218. package/src/Viewer/Viewer.ts +1109 -1109
  219. package/src/Viewer/ViewerCommands.ts +45 -45
  220. package/src/Viewer/ViewerEvents.ts +700 -700
  221. package/src/Viewer/utils.ts +74 -74
  222. package/src/index.ts +48 -48
@@ -1,121 +1,123 @@
1
- import Konva from "konva";
2
- import { IMarkupImage } from "../../IMarkupImage";
3
-
4
- export class KonvaImage implements IMarkupImage {
5
- private _ref: Konva.Image;
6
- private _canvasImage: HTMLImageElement;
7
- private _ratio = 1;
8
-
9
- constructor(params: { position: { x: number; y: number }; src: string; width: number; height: number }, ref = null) {
10
- if (ref) {
11
- if (ref.height() === 0 || ref.width() === 0) return;
12
-
13
- this._ref = ref;
14
- this._canvasImage = ref.image();
15
- this._ref.id(this._ref._id.toString());
16
- this._ratio = this._ref.height() / this._ref.width();
17
- return;
18
- }
19
-
20
- if (!params.position || !params.src) return;
21
- this._canvasImage = new Image();
22
-
23
- this._ref = new Konva.Image({
24
- x: params.position.x,
25
- y: params.position.y,
26
- image: this._canvasImage,
27
- width: params.width,
28
- height: params.height,
29
- draggable: true,
30
- });
31
-
32
- this._canvasImage.onload = () => {
33
- this._ref.image(this._canvasImage);
34
- this._ratio = this._ref.height() === 0 || this._ref.width() === 0 ? 1 : this._ref.height() / this._ref.width();
35
- };
36
-
37
- this._canvasImage.src = params.src;
38
-
39
- this._ref.id(this._ref._id.toString());
40
- }
41
-
42
- getSrc(): string {
43
- return this._canvasImage.src;
44
- }
45
-
46
- setSrc(src: any) {
47
- this._canvasImage.src = src;
48
- }
49
-
50
- getWidth(): number {
51
- return this._ref.width();
52
- }
53
-
54
- setWidth(w: number) {
55
- this._ref.width(w);
56
- this._ref.height(w * this._ratio);
57
- }
58
-
59
- getHeight(): number {
60
- return this._ref.height();
61
- }
62
-
63
- setHeight(h: number) {
64
- this._ref.height(h);
65
- this._ref.width(h / this._ratio);
66
- }
67
-
68
- ref() {
69
- return this._ref;
70
- }
71
-
72
- id(): string {
73
- return this._ref.id();
74
- }
75
-
76
- enableMouseEditing(value: boolean) {
77
- this._ref.draggable(value);
78
- }
79
-
80
- type(): string {
81
- return "image";
82
- }
83
-
84
- // we can break Liskov Substitution Principle, need to use separate IColorable
85
- // getColor(): string {
86
- // return this._ref.fill();
87
- // }
88
-
89
- // setColor(hex: string) {
90
- // this._ref.fill(hex);
91
- // }
92
-
93
- getRotation(): number {
94
- return this._ref.rotation();
95
- }
96
-
97
- setRotation(degrees: number): void {
98
- this._ref.rotation(degrees);
99
- }
100
-
101
- getZIndex(): number {
102
- return this._ref.zIndex();
103
- }
104
-
105
- setZIndex(zIndex: number): void {
106
- this._ref.zIndex(zIndex);
107
- }
108
-
109
- delete() {
110
- this._ref.destroy();
111
- this._ref = null;
112
- }
113
-
114
- getPosition(): { x: number; y: number } {
115
- return this._ref.getPosition();
116
- }
117
-
118
- setPosition(x: number, y: number) {
119
- this._ref.setPosition({ x, y });
120
- }
121
- }
1
+ import Konva from "konva";
2
+ import { IMarkupImage } from "../../IMarkupImage";
3
+
4
+ export class KonvaImage implements IMarkupImage {
5
+ private _ref: Konva.Image;
6
+ private _canvasImage: HTMLImageElement;
7
+ private _ratio = 1;
8
+
9
+ constructor(
10
+ params: { position: { x: number; y: number }; src: string; width: number; height: number; id?: string },
11
+ ref = null
12
+ ) {
13
+ if (ref) {
14
+ if (ref.height() === 0 || ref.width() === 0) return;
15
+
16
+ this._ref = ref;
17
+ this._canvasImage = ref.image();
18
+ this._ratio = this._ref.height() / this._ref.width();
19
+ return;
20
+ }
21
+
22
+ if (!params.position || !params.src) return;
23
+ this._canvasImage = new Image();
24
+
25
+ this._ref = new Konva.Image({
26
+ x: params.position.x,
27
+ y: params.position.y,
28
+ image: this._canvasImage,
29
+ width: params.width,
30
+ height: params.height,
31
+ draggable: true,
32
+ });
33
+
34
+ this._canvasImage.onload = () => {
35
+ this._ref.image(this._canvasImage);
36
+ this._ratio = this._ref.height() === 0 || this._ref.width() === 0 ? 1 : this._ref.height() / this._ref.width();
37
+ };
38
+
39
+ this._canvasImage.src = params.src;
40
+
41
+ this._ref.id(this._ref._id.toString());
42
+ }
43
+
44
+ getSrc(): string {
45
+ return this._canvasImage.src;
46
+ }
47
+
48
+ setSrc(src: any) {
49
+ this._canvasImage.src = src;
50
+ }
51
+
52
+ getWidth(): number {
53
+ return this._ref.width();
54
+ }
55
+
56
+ setWidth(w: number) {
57
+ this._ref.width(w);
58
+ this._ref.height(w * this._ratio);
59
+ }
60
+
61
+ getHeight(): number {
62
+ return this._ref.height();
63
+ }
64
+
65
+ setHeight(h: number) {
66
+ this._ref.height(h);
67
+ this._ref.width(h / this._ratio);
68
+ }
69
+
70
+ ref() {
71
+ return this._ref;
72
+ }
73
+
74
+ id(): string {
75
+ return this._ref.id();
76
+ }
77
+
78
+ enableMouseEditing(value: boolean) {
79
+ this._ref.draggable(value);
80
+ }
81
+
82
+ type(): string {
83
+ return "image";
84
+ }
85
+
86
+ // we can break Liskov Substitution Principle, need to use separate IColorable
87
+ // getColor(): string {
88
+ // return this._ref.fill();
89
+ // }
90
+
91
+ // setColor(hex: string) {
92
+ // this._ref.fill(hex);
93
+ // }
94
+
95
+ getRotation(): number {
96
+ return this._ref.rotation();
97
+ }
98
+
99
+ setRotation(degrees: number): void {
100
+ this._ref.rotation(degrees);
101
+ }
102
+
103
+ getZIndex(): number {
104
+ return this._ref.zIndex();
105
+ }
106
+
107
+ setZIndex(zIndex: number): void {
108
+ this._ref.zIndex(zIndex);
109
+ }
110
+
111
+ delete() {
112
+ this._ref.destroy();
113
+ this._ref = null;
114
+ }
115
+
116
+ getPosition(): { x: number; y: number } {
117
+ return this._ref.getPosition();
118
+ }
119
+
120
+ setPosition(x: number, y: number) {
121
+ this._ref.setPosition({ x, y });
122
+ }
123
+ }
@@ -1,99 +1,130 @@
1
- import Konva from "konva";
2
- import { IMarkupLine } from "../../IMarkupLine";
3
- import { IMarkupColorable } from "../../IMarkupColorable";
4
-
5
- export class KonvaLine implements IMarkupLine, IMarkupColorable {
6
- private _ref: Konva.Line;
7
-
8
- constructor(params: { points: { x: number; y: number }[]; color: string; width: number }, ref = null) {
9
- if (ref) {
10
- this._ref = ref;
11
- this._ref.id(this._ref._id.toString());
12
- return;
13
- }
14
-
15
- if (!params.points) return;
16
-
17
- const konvaPoints = [];
18
- params.points.forEach((point) => konvaPoints.push(point.x, point.y));
19
-
20
- this._ref = new Konva.Line({
21
- stroke: params.color ?? "#ff0000",
22
- strokeWidth: params.width ?? 4,
23
- globalCompositeOperation: "source-over",
24
- lineCap: "round",
25
- lineJoin: "round",
26
- points: konvaPoints,
27
- draggable: true,
28
- strokeScaleEnabled: false,
29
- });
30
-
31
- this._ref.id(this._ref._id.toString());
32
- }
33
-
34
- ref() {
35
- return this._ref;
36
- }
37
-
38
- id(): string {
39
- return this._ref.id();
40
- }
41
-
42
- enableMouseEditing(value: boolean) {
43
- this._ref.draggable(value);
44
- }
45
-
46
- type(): string {
47
- return "line";
48
- }
49
-
50
- getColor(): string {
51
- return this._ref.stroke();
52
- }
53
-
54
- setColor(hex: string) {
55
- this._ref.stroke(hex);
56
- }
57
-
58
- getRotation(): number {
59
- return this._ref.rotation();
60
- }
61
-
62
- setRotation(degrees: number): void {
63
- this._ref.rotation(degrees);
64
- }
65
-
66
- getZIndex(): number {
67
- return this._ref.zIndex();
68
- }
69
-
70
- setZIndex(zIndex: number): void {
71
- this._ref.zIndex(zIndex);
72
- }
73
-
74
- delete() {
75
- this._ref.destroy();
76
- this._ref = null;
77
- }
78
-
79
- getPoints(): [] {
80
- return this._ref.attrs.points;
81
- }
82
-
83
- setLineWidth(size: number) {
84
- this._ref.strokeWidth(size);
85
- }
86
-
87
- getLineWidth(): number {
88
- return this._ref.strokeWidth();
89
- }
90
-
91
- addPoints(points: [{ x: number; y: number }]) {
92
- let newPoints = this._ref.points();
93
- points.forEach((point) => {
94
- newPoints = newPoints.concat([point.x, point.y]);
95
- });
96
-
97
- this._ref.points(newPoints);
98
- }
99
- }
1
+ import Konva from "konva";
2
+ import { IMarkupLine, LineType } from "../../IMarkupLine";
3
+ import { IMarkupColorable } from "../../IMarkupColorable";
4
+
5
+ const LineTypeSpecs = new Map<LineType, number[]>([
6
+ [LineType.Solid, []],
7
+ [LineType.Dot, [30, 30, 0.001, 30]],
8
+ [LineType.Dash, [30, 30]],
9
+ ]);
10
+
11
+ export class KonvaLine implements IMarkupLine, IMarkupColorable {
12
+ private _ref: Konva.Line;
13
+
14
+ constructor(
15
+ params: { points: { x: number; y: number }[]; color: string; type: LineType; width: number; id?: string },
16
+ ref = null
17
+ ) {
18
+ if (ref) {
19
+ this._ref = ref;
20
+ return;
21
+ }
22
+
23
+ if (!params.points) return;
24
+
25
+ const konvaPoints = [];
26
+ params.points.forEach((point) => konvaPoints.push(point.x, point.y));
27
+
28
+ this._ref = new Konva.Line({
29
+ stroke: params.color ?? "#ff0000",
30
+ strokeWidth: params.width ?? 4,
31
+ globalCompositeOperation: "source-over",
32
+ lineCap: "round",
33
+ lineJoin: "round",
34
+ points: konvaPoints,
35
+ draggable: true,
36
+ strokeScaleEnabled: false,
37
+ dash: LineTypeSpecs.get(params.type) || [],
38
+ });
39
+
40
+ this._ref.id(this._ref._id.toString());
41
+ }
42
+
43
+ ref() {
44
+ return this._ref;
45
+ }
46
+
47
+ id(): string {
48
+ return this._ref.id();
49
+ }
50
+
51
+ enableMouseEditing(value: boolean) {
52
+ this._ref.draggable(value);
53
+ }
54
+
55
+ type(): string {
56
+ return "line";
57
+ }
58
+
59
+ getColor(): string {
60
+ return this._ref.stroke();
61
+ }
62
+
63
+ setColor(hex: string) {
64
+ this._ref.stroke(hex);
65
+ }
66
+
67
+ getRotation(): number {
68
+ return this._ref.rotation();
69
+ }
70
+
71
+ setRotation(degrees: number): void {
72
+ this._ref.rotation(degrees);
73
+ }
74
+
75
+ getZIndex(): number {
76
+ return this._ref.zIndex();
77
+ }
78
+
79
+ setZIndex(zIndex: number): void {
80
+ this._ref.zIndex(zIndex);
81
+ }
82
+
83
+ delete() {
84
+ this._ref.destroy();
85
+ this._ref = null;
86
+ }
87
+
88
+ getPoints(): number[] {
89
+ return this._ref.points();
90
+ }
91
+
92
+ setLineWidth(size: number) {
93
+ this._ref.strokeWidth(size);
94
+ }
95
+
96
+ getLineWidth(): number {
97
+ return this._ref.strokeWidth();
98
+ }
99
+
100
+ getLineType(): string {
101
+ const typeSpecs = this._ref.dash() || [];
102
+ let type = "solid";
103
+ switch (typeSpecs) {
104
+ case LineTypeSpecs.get(LineType.Dot):
105
+ type = "dot";
106
+ break;
107
+ case LineTypeSpecs.get(LineType.Dash):
108
+ type = "dash";
109
+ break;
110
+ }
111
+ return type;
112
+ }
113
+
114
+ setLineType(type: string) {
115
+ const lineType = LineType[type];
116
+ if (lineType) {
117
+ const specs = LineTypeSpecs.get(lineType);
118
+ if (specs) this._ref.dash(specs);
119
+ }
120
+ }
121
+
122
+ addPoints(points: [{ x: number; y: number }]) {
123
+ let newPoints = this._ref.points();
124
+ points.forEach((point) => {
125
+ newPoints = newPoints.concat([point.x, point.y]);
126
+ });
127
+
128
+ this._ref.points(newPoints);
129
+ }
130
+ }