@inweb/client 25.2.2 → 25.2.8

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