@archireport/react-native-drawing 0.2.0

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 (323) hide show
  1. package/README.md +181 -0
  2. package/lib/commonjs/DrawingEditor.js +815 -0
  3. package/lib/commonjs/DrawingEditor.js.map +1 -0
  4. package/lib/commonjs/assets/toolbar-icons/arrow-disabled.png +0 -0
  5. package/lib/commonjs/assets/toolbar-icons/arrow-enabled.png +0 -0
  6. package/lib/commonjs/assets/toolbar-icons/arrow.png +0 -0
  7. package/lib/commonjs/assets/toolbar-icons/circle-disabled.png +0 -0
  8. package/lib/commonjs/assets/toolbar-icons/circle-enabled.png +0 -0
  9. package/lib/commonjs/assets/toolbar-icons/circle.png +0 -0
  10. package/lib/commonjs/assets/toolbar-icons/freehand-disabled.png +0 -0
  11. package/lib/commonjs/assets/toolbar-icons/freehand-enabled.png +0 -0
  12. package/lib/commonjs/assets/toolbar-icons/freehand.png +0 -0
  13. package/lib/commonjs/assets/toolbar-icons/line-disabled.png +0 -0
  14. package/lib/commonjs/assets/toolbar-icons/line-enabled.png +0 -0
  15. package/lib/commonjs/assets/toolbar-icons/line.png +0 -0
  16. package/lib/commonjs/assets/toolbar-icons/measure-disabled.png +0 -0
  17. package/lib/commonjs/assets/toolbar-icons/measure-enabled.png +0 -0
  18. package/lib/commonjs/assets/toolbar-icons/measure.png +0 -0
  19. package/lib/commonjs/assets/toolbar-icons/move-disabled.png +0 -0
  20. package/lib/commonjs/assets/toolbar-icons/move-enabled.png +0 -0
  21. package/lib/commonjs/assets/toolbar-icons/move.png +0 -0
  22. package/lib/commonjs/assets/toolbar-icons/polygon-disabled.png +0 -0
  23. package/lib/commonjs/assets/toolbar-icons/polygon-enabled.png +0 -0
  24. package/lib/commonjs/assets/toolbar-icons/polygon.png +0 -0
  25. package/lib/commonjs/assets/toolbar-icons/rectangle-disabled.png +0 -0
  26. package/lib/commonjs/assets/toolbar-icons/rectangle-enabled.png +0 -0
  27. package/lib/commonjs/assets/toolbar-icons/rectangle.png +0 -0
  28. package/lib/commonjs/assets/toolbar-icons/text-disabled.png +0 -0
  29. package/lib/commonjs/assets/toolbar-icons/text-enabled.png +0 -0
  30. package/lib/commonjs/assets/toolbar-icons/text.png +0 -0
  31. package/lib/commonjs/components/ColorPalette.js +379 -0
  32. package/lib/commonjs/components/ColorPalette.js.map +1 -0
  33. package/lib/commonjs/components/LineWidthSlider.js +70 -0
  34. package/lib/commonjs/components/LineWidthSlider.js.map +1 -0
  35. package/lib/commonjs/components/MeasurementEditModal.js +153 -0
  36. package/lib/commonjs/components/MeasurementEditModal.js.map +1 -0
  37. package/lib/commonjs/components/MiniMap.js +244 -0
  38. package/lib/commonjs/components/MiniMap.js.map +1 -0
  39. package/lib/commonjs/components/TextAnnotation.js +162 -0
  40. package/lib/commonjs/components/TextAnnotation.js.map +1 -0
  41. package/lib/commonjs/components/TextEditModal.js +133 -0
  42. package/lib/commonjs/components/TextEditModal.js.map +1 -0
  43. package/lib/commonjs/components/Toolbar.js +198 -0
  44. package/lib/commonjs/components/Toolbar.js.map +1 -0
  45. package/lib/commonjs/components/ZoomBadge.js +161 -0
  46. package/lib/commonjs/components/ZoomBadge.js.map +1 -0
  47. package/lib/commonjs/hooks/useFreehandGesture.js +173 -0
  48. package/lib/commonjs/hooks/useFreehandGesture.js.map +1 -0
  49. package/lib/commonjs/hooks/usePolygonGesture.js +109 -0
  50. package/lib/commonjs/hooks/usePolygonGesture.js.map +1 -0
  51. package/lib/commonjs/hooks/useSelectionGesture.js +236 -0
  52. package/lib/commonjs/hooks/useSelectionGesture.js.map +1 -0
  53. package/lib/commonjs/hooks/useShapeGesture.js +181 -0
  54. package/lib/commonjs/hooks/useShapeGesture.js.map +1 -0
  55. package/lib/commonjs/hooks/useViewportGesture.js +238 -0
  56. package/lib/commonjs/hooks/useViewportGesture.js.map +1 -0
  57. package/lib/commonjs/index.js +104 -0
  58. package/lib/commonjs/index.js.map +1 -0
  59. package/lib/commonjs/package.json +1 -0
  60. package/lib/commonjs/renderers/ArrowRenderer.js +118 -0
  61. package/lib/commonjs/renderers/ArrowRenderer.js.map +1 -0
  62. package/lib/commonjs/renderers/CircleRenderer.js +51 -0
  63. package/lib/commonjs/renderers/CircleRenderer.js.map +1 -0
  64. package/lib/commonjs/renderers/FreehandRenderer.js +31 -0
  65. package/lib/commonjs/renderers/FreehandRenderer.js.map +1 -0
  66. package/lib/commonjs/renderers/InProgressRenderer.js +174 -0
  67. package/lib/commonjs/renderers/InProgressRenderer.js.map +1 -0
  68. package/lib/commonjs/renderers/LineRenderer.js +27 -0
  69. package/lib/commonjs/renderers/LineRenderer.js.map +1 -0
  70. package/lib/commonjs/renderers/MeasurementRenderer.js +134 -0
  71. package/lib/commonjs/renderers/MeasurementRenderer.js.map +1 -0
  72. package/lib/commonjs/renderers/ObjectRenderer.js +65 -0
  73. package/lib/commonjs/renderers/ObjectRenderer.js.map +1 -0
  74. package/lib/commonjs/renderers/PolygonRenderer.js +46 -0
  75. package/lib/commonjs/renderers/PolygonRenderer.js.map +1 -0
  76. package/lib/commonjs/renderers/RectRenderer.js +51 -0
  77. package/lib/commonjs/renderers/RectRenderer.js.map +1 -0
  78. package/lib/commonjs/renderers/SelectedObjectRenderer.js +592 -0
  79. package/lib/commonjs/renderers/SelectedObjectRenderer.js.map +1 -0
  80. package/lib/commonjs/renderers/SelectionOverlay.js +120 -0
  81. package/lib/commonjs/renderers/SelectionOverlay.js.map +1 -0
  82. package/lib/commonjs/store/useDrawingStore.js +354 -0
  83. package/lib/commonjs/store/useDrawingStore.js.map +1 -0
  84. package/lib/commonjs/types.js +6 -0
  85. package/lib/commonjs/types.js.map +1 -0
  86. package/lib/commonjs/utils/colors.js +44 -0
  87. package/lib/commonjs/utils/colors.js.map +1 -0
  88. package/lib/commonjs/utils/coordinates.js +81 -0
  89. package/lib/commonjs/utils/coordinates.js.map +1 -0
  90. package/lib/commonjs/utils/hitTesting.js +181 -0
  91. package/lib/commonjs/utils/hitTesting.js.map +1 -0
  92. package/lib/commonjs/utils/serialization.js +42 -0
  93. package/lib/commonjs/utils/serialization.js.map +1 -0
  94. package/lib/commonjs/utils/shapeDetection.js +151 -0
  95. package/lib/commonjs/utils/shapeDetection.js.map +1 -0
  96. package/lib/commonjs/utils/smoothing.js +85 -0
  97. package/lib/commonjs/utils/smoothing.js.map +1 -0
  98. package/lib/module/DrawingEditor.js +811 -0
  99. package/lib/module/DrawingEditor.js.map +1 -0
  100. package/lib/module/assets/toolbar-icons/arrow-disabled.png +0 -0
  101. package/lib/module/assets/toolbar-icons/arrow-enabled.png +0 -0
  102. package/lib/module/assets/toolbar-icons/arrow.png +0 -0
  103. package/lib/module/assets/toolbar-icons/circle-disabled.png +0 -0
  104. package/lib/module/assets/toolbar-icons/circle-enabled.png +0 -0
  105. package/lib/module/assets/toolbar-icons/circle.png +0 -0
  106. package/lib/module/assets/toolbar-icons/freehand-disabled.png +0 -0
  107. package/lib/module/assets/toolbar-icons/freehand-enabled.png +0 -0
  108. package/lib/module/assets/toolbar-icons/freehand.png +0 -0
  109. package/lib/module/assets/toolbar-icons/line-disabled.png +0 -0
  110. package/lib/module/assets/toolbar-icons/line-enabled.png +0 -0
  111. package/lib/module/assets/toolbar-icons/line.png +0 -0
  112. package/lib/module/assets/toolbar-icons/measure-disabled.png +0 -0
  113. package/lib/module/assets/toolbar-icons/measure-enabled.png +0 -0
  114. package/lib/module/assets/toolbar-icons/measure.png +0 -0
  115. package/lib/module/assets/toolbar-icons/move-disabled.png +0 -0
  116. package/lib/module/assets/toolbar-icons/move-enabled.png +0 -0
  117. package/lib/module/assets/toolbar-icons/move.png +0 -0
  118. package/lib/module/assets/toolbar-icons/polygon-disabled.png +0 -0
  119. package/lib/module/assets/toolbar-icons/polygon-enabled.png +0 -0
  120. package/lib/module/assets/toolbar-icons/polygon.png +0 -0
  121. package/lib/module/assets/toolbar-icons/rectangle-disabled.png +0 -0
  122. package/lib/module/assets/toolbar-icons/rectangle-enabled.png +0 -0
  123. package/lib/module/assets/toolbar-icons/rectangle.png +0 -0
  124. package/lib/module/assets/toolbar-icons/text-disabled.png +0 -0
  125. package/lib/module/assets/toolbar-icons/text-enabled.png +0 -0
  126. package/lib/module/assets/toolbar-icons/text.png +0 -0
  127. package/lib/module/components/ColorPalette.js +374 -0
  128. package/lib/module/components/ColorPalette.js.map +1 -0
  129. package/lib/module/components/LineWidthSlider.js +64 -0
  130. package/lib/module/components/LineWidthSlider.js.map +1 -0
  131. package/lib/module/components/MeasurementEditModal.js +148 -0
  132. package/lib/module/components/MeasurementEditModal.js.map +1 -0
  133. package/lib/module/components/MiniMap.js +239 -0
  134. package/lib/module/components/MiniMap.js.map +1 -0
  135. package/lib/module/components/TextAnnotation.js +157 -0
  136. package/lib/module/components/TextAnnotation.js.map +1 -0
  137. package/lib/module/components/TextEditModal.js +128 -0
  138. package/lib/module/components/TextEditModal.js.map +1 -0
  139. package/lib/module/components/Toolbar.js +193 -0
  140. package/lib/module/components/Toolbar.js.map +1 -0
  141. package/lib/module/components/ZoomBadge.js +155 -0
  142. package/lib/module/components/ZoomBadge.js.map +1 -0
  143. package/lib/module/hooks/useFreehandGesture.js +169 -0
  144. package/lib/module/hooks/useFreehandGesture.js.map +1 -0
  145. package/lib/module/hooks/usePolygonGesture.js +106 -0
  146. package/lib/module/hooks/usePolygonGesture.js.map +1 -0
  147. package/lib/module/hooks/useSelectionGesture.js +232 -0
  148. package/lib/module/hooks/useSelectionGesture.js.map +1 -0
  149. package/lib/module/hooks/useShapeGesture.js +177 -0
  150. package/lib/module/hooks/useShapeGesture.js.map +1 -0
  151. package/lib/module/hooks/useViewportGesture.js +234 -0
  152. package/lib/module/hooks/useViewportGesture.js.map +1 -0
  153. package/lib/module/index.js +20 -0
  154. package/lib/module/index.js.map +1 -0
  155. package/lib/module/package.json +1 -0
  156. package/lib/module/renderers/ArrowRenderer.js +113 -0
  157. package/lib/module/renderers/ArrowRenderer.js.map +1 -0
  158. package/lib/module/renderers/CircleRenderer.js +46 -0
  159. package/lib/module/renderers/CircleRenderer.js.map +1 -0
  160. package/lib/module/renderers/FreehandRenderer.js +26 -0
  161. package/lib/module/renderers/FreehandRenderer.js.map +1 -0
  162. package/lib/module/renderers/InProgressRenderer.js +169 -0
  163. package/lib/module/renderers/InProgressRenderer.js.map +1 -0
  164. package/lib/module/renderers/LineRenderer.js +22 -0
  165. package/lib/module/renderers/LineRenderer.js.map +1 -0
  166. package/lib/module/renderers/MeasurementRenderer.js +129 -0
  167. package/lib/module/renderers/MeasurementRenderer.js.map +1 -0
  168. package/lib/module/renderers/ObjectRenderer.js +60 -0
  169. package/lib/module/renderers/ObjectRenderer.js.map +1 -0
  170. package/lib/module/renderers/PolygonRenderer.js +41 -0
  171. package/lib/module/renderers/PolygonRenderer.js.map +1 -0
  172. package/lib/module/renderers/RectRenderer.js +46 -0
  173. package/lib/module/renderers/RectRenderer.js.map +1 -0
  174. package/lib/module/renderers/SelectedObjectRenderer.js +587 -0
  175. package/lib/module/renderers/SelectedObjectRenderer.js.map +1 -0
  176. package/lib/module/renderers/SelectionOverlay.js +116 -0
  177. package/lib/module/renderers/SelectionOverlay.js.map +1 -0
  178. package/lib/module/store/useDrawingStore.js +350 -0
  179. package/lib/module/store/useDrawingStore.js.map +1 -0
  180. package/lib/module/types.js +4 -0
  181. package/lib/module/types.js.map +1 -0
  182. package/lib/module/utils/colors.js +40 -0
  183. package/lib/module/utils/colors.js.map +1 -0
  184. package/lib/module/utils/coordinates.js +71 -0
  185. package/lib/module/utils/coordinates.js.map +1 -0
  186. package/lib/module/utils/hitTesting.js +171 -0
  187. package/lib/module/utils/hitTesting.js.map +1 -0
  188. package/lib/module/utils/serialization.js +36 -0
  189. package/lib/module/utils/serialization.js.map +1 -0
  190. package/lib/module/utils/shapeDetection.js +147 -0
  191. package/lib/module/utils/shapeDetection.js.map +1 -0
  192. package/lib/module/utils/smoothing.js +80 -0
  193. package/lib/module/utils/smoothing.js.map +1 -0
  194. package/lib/typescript/DrawingEditor.d.ts +3 -0
  195. package/lib/typescript/DrawingEditor.d.ts.map +1 -0
  196. package/lib/typescript/components/ColorPalette.d.ts +9 -0
  197. package/lib/typescript/components/ColorPalette.d.ts.map +1 -0
  198. package/lib/typescript/components/LineWidthSlider.d.ts +11 -0
  199. package/lib/typescript/components/LineWidthSlider.d.ts.map +1 -0
  200. package/lib/typescript/components/MeasurementEditModal.d.ts +11 -0
  201. package/lib/typescript/components/MeasurementEditModal.d.ts.map +1 -0
  202. package/lib/typescript/components/MiniMap.d.ts +23 -0
  203. package/lib/typescript/components/MiniMap.d.ts.map +1 -0
  204. package/lib/typescript/components/TextAnnotation.d.ts +22 -0
  205. package/lib/typescript/components/TextAnnotation.d.ts.map +1 -0
  206. package/lib/typescript/components/TextEditModal.d.ts +10 -0
  207. package/lib/typescript/components/TextEditModal.d.ts.map +1 -0
  208. package/lib/typescript/components/Toolbar.d.ts +13 -0
  209. package/lib/typescript/components/Toolbar.d.ts.map +1 -0
  210. package/lib/typescript/components/ZoomBadge.d.ts +9 -0
  211. package/lib/typescript/components/ZoomBadge.d.ts.map +1 -0
  212. package/lib/typescript/hooks/useFreehandGesture.d.ts +47 -0
  213. package/lib/typescript/hooks/useFreehandGesture.d.ts.map +1 -0
  214. package/lib/typescript/hooks/usePolygonGesture.d.ts +47 -0
  215. package/lib/typescript/hooks/usePolygonGesture.d.ts.map +1 -0
  216. package/lib/typescript/hooks/useSelectionGesture.d.ts +32 -0
  217. package/lib/typescript/hooks/useSelectionGesture.d.ts.map +1 -0
  218. package/lib/typescript/hooks/useShapeGesture.d.ts +54 -0
  219. package/lib/typescript/hooks/useShapeGesture.d.ts.map +1 -0
  220. package/lib/typescript/hooks/useViewportGesture.d.ts +37 -0
  221. package/lib/typescript/hooks/useViewportGesture.d.ts.map +1 -0
  222. package/lib/typescript/index.d.ts +11 -0
  223. package/lib/typescript/index.d.ts.map +1 -0
  224. package/lib/typescript/renderers/ArrowRenderer.d.ts +9 -0
  225. package/lib/typescript/renderers/ArrowRenderer.d.ts.map +1 -0
  226. package/lib/typescript/renderers/CircleRenderer.d.ts +9 -0
  227. package/lib/typescript/renderers/CircleRenderer.d.ts.map +1 -0
  228. package/lib/typescript/renderers/FreehandRenderer.d.ts +9 -0
  229. package/lib/typescript/renderers/FreehandRenderer.d.ts.map +1 -0
  230. package/lib/typescript/renderers/InProgressRenderer.d.ts +32 -0
  231. package/lib/typescript/renderers/InProgressRenderer.d.ts.map +1 -0
  232. package/lib/typescript/renderers/LineRenderer.d.ts +9 -0
  233. package/lib/typescript/renderers/LineRenderer.d.ts.map +1 -0
  234. package/lib/typescript/renderers/MeasurementRenderer.d.ts +9 -0
  235. package/lib/typescript/renderers/MeasurementRenderer.d.ts.map +1 -0
  236. package/lib/typescript/renderers/ObjectRenderer.d.ts +12 -0
  237. package/lib/typescript/renderers/ObjectRenderer.d.ts.map +1 -0
  238. package/lib/typescript/renderers/PolygonRenderer.d.ts +13 -0
  239. package/lib/typescript/renderers/PolygonRenderer.d.ts.map +1 -0
  240. package/lib/typescript/renderers/RectRenderer.d.ts +9 -0
  241. package/lib/typescript/renderers/RectRenderer.d.ts.map +1 -0
  242. package/lib/typescript/renderers/SelectedObjectRenderer.d.ts +18 -0
  243. package/lib/typescript/renderers/SelectedObjectRenderer.d.ts.map +1 -0
  244. package/lib/typescript/renderers/SelectionOverlay.d.ts +21 -0
  245. package/lib/typescript/renderers/SelectionOverlay.d.ts.map +1 -0
  246. package/lib/typescript/store/useDrawingStore.d.ts +30 -0
  247. package/lib/typescript/store/useDrawingStore.d.ts.map +1 -0
  248. package/lib/typescript/types.d.ts +130 -0
  249. package/lib/typescript/types.d.ts.map +1 -0
  250. package/lib/typescript/utils/colors.d.ts +11 -0
  251. package/lib/typescript/utils/colors.d.ts.map +1 -0
  252. package/lib/typescript/utils/coordinates.d.ts +34 -0
  253. package/lib/typescript/utils/coordinates.d.ts.map +1 -0
  254. package/lib/typescript/utils/hitTesting.d.ts +18 -0
  255. package/lib/typescript/utils/hitTesting.d.ts.map +1 -0
  256. package/lib/typescript/utils/serialization.d.ts +17 -0
  257. package/lib/typescript/utils/serialization.d.ts.map +1 -0
  258. package/lib/typescript/utils/shapeDetection.d.ts +22 -0
  259. package/lib/typescript/utils/shapeDetection.d.ts.map +1 -0
  260. package/lib/typescript/utils/smoothing.d.ts +16 -0
  261. package/lib/typescript/utils/smoothing.d.ts.map +1 -0
  262. package/package.json +108 -0
  263. package/src/DrawingEditor.tsx +1071 -0
  264. package/src/assets/toolbar-icons/arrow-disabled.png +0 -0
  265. package/src/assets/toolbar-icons/arrow-enabled.png +0 -0
  266. package/src/assets/toolbar-icons/arrow.png +0 -0
  267. package/src/assets/toolbar-icons/circle-disabled.png +0 -0
  268. package/src/assets/toolbar-icons/circle-enabled.png +0 -0
  269. package/src/assets/toolbar-icons/circle.png +0 -0
  270. package/src/assets/toolbar-icons/freehand-disabled.png +0 -0
  271. package/src/assets/toolbar-icons/freehand-enabled.png +0 -0
  272. package/src/assets/toolbar-icons/freehand.png +0 -0
  273. package/src/assets/toolbar-icons/line-disabled.png +0 -0
  274. package/src/assets/toolbar-icons/line-enabled.png +0 -0
  275. package/src/assets/toolbar-icons/line.png +0 -0
  276. package/src/assets/toolbar-icons/measure-disabled.png +0 -0
  277. package/src/assets/toolbar-icons/measure-enabled.png +0 -0
  278. package/src/assets/toolbar-icons/measure.png +0 -0
  279. package/src/assets/toolbar-icons/move-disabled.png +0 -0
  280. package/src/assets/toolbar-icons/move-enabled.png +0 -0
  281. package/src/assets/toolbar-icons/move.png +0 -0
  282. package/src/assets/toolbar-icons/polygon-disabled.png +0 -0
  283. package/src/assets/toolbar-icons/polygon-enabled.png +0 -0
  284. package/src/assets/toolbar-icons/polygon.png +0 -0
  285. package/src/assets/toolbar-icons/rectangle-disabled.png +0 -0
  286. package/src/assets/toolbar-icons/rectangle-enabled.png +0 -0
  287. package/src/assets/toolbar-icons/rectangle.png +0 -0
  288. package/src/assets/toolbar-icons/text-disabled.png +0 -0
  289. package/src/assets/toolbar-icons/text-enabled.png +0 -0
  290. package/src/assets/toolbar-icons/text.png +0 -0
  291. package/src/components/ColorPalette.tsx +497 -0
  292. package/src/components/LineWidthSlider.tsx +87 -0
  293. package/src/components/MeasurementEditModal.tsx +163 -0
  294. package/src/components/MiniMap.tsx +275 -0
  295. package/src/components/TextAnnotation.tsx +198 -0
  296. package/src/components/TextEditModal.tsx +139 -0
  297. package/src/components/Toolbar.tsx +254 -0
  298. package/src/components/ZoomBadge.tsx +166 -0
  299. package/src/hooks/useFreehandGesture.ts +249 -0
  300. package/src/hooks/usePolygonGesture.ts +162 -0
  301. package/src/hooks/useSelectionGesture.ts +293 -0
  302. package/src/hooks/useShapeGesture.ts +256 -0
  303. package/src/hooks/useViewportGesture.ts +337 -0
  304. package/src/index.tsx +51 -0
  305. package/src/renderers/ArrowRenderer.tsx +123 -0
  306. package/src/renderers/CircleRenderer.tsx +60 -0
  307. package/src/renderers/FreehandRenderer.tsx +33 -0
  308. package/src/renderers/InProgressRenderer.tsx +217 -0
  309. package/src/renderers/LineRenderer.tsx +34 -0
  310. package/src/renderers/MeasurementRenderer.tsx +179 -0
  311. package/src/renderers/ObjectRenderer.tsx +42 -0
  312. package/src/renderers/PolygonRenderer.tsx +66 -0
  313. package/src/renderers/RectRenderer.tsx +60 -0
  314. package/src/renderers/SelectedObjectRenderer.tsx +738 -0
  315. package/src/renderers/SelectionOverlay.tsx +170 -0
  316. package/src/store/useDrawingStore.ts +357 -0
  317. package/src/types.ts +186 -0
  318. package/src/utils/colors.ts +98 -0
  319. package/src/utils/coordinates.ts +75 -0
  320. package/src/utils/hitTesting.ts +242 -0
  321. package/src/utils/serialization.ts +45 -0
  322. package/src/utils/shapeDetection.ts +160 -0
  323. package/src/utils/smoothing.ts +84 -0
@@ -0,0 +1,587 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useMemo } from "react";
4
+ import { Platform } from "react-native";
5
+ import { Line as SkiaLine, Rect, Oval, Group, Path, Skia, Text, matchFont } from "@shopify/react-native-skia";
6
+ import { useDerivedValue } from "react-native-reanimated";
7
+ import { denormalize, denormalizePoints } from "../utils/coordinates";
8
+ import { buildSmoothedPath } from "../utils/smoothing";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const FONT_FAMILY = Platform.OS === "android" ? "sans-serif" : "System";
11
+ const TEXT_GAP_PADDING = 6;
12
+ /**
13
+ * Renders the selected object with animated positions that follow
14
+ * the drag gesture in real-time — both for move and resize.
15
+ */
16
+ export const SelectedObjectRenderer = /*#__PURE__*/React.memo(function SelectedObjectRenderer({
17
+ object,
18
+ canvasSize,
19
+ isDragging,
20
+ draggingAnchorIndex,
21
+ dragOffsetX,
22
+ dragOffsetY
23
+ }) {
24
+ // When the store commits new positions after a drag, the component
25
+ // re-renders with the updated object. Reset drag state at that point
26
+ // so the transition from "base + offset" to "newBase + 0" is atomic.
27
+ useEffect(() => {
28
+ if (isDragging.value) {
29
+ isDragging.value = false;
30
+ dragOffsetX.value = 0;
31
+ dragOffsetY.value = 0;
32
+ draggingAnchorIndex.value = -1;
33
+ }
34
+ }, [object, isDragging, dragOffsetX, dragOffsetY, draggingAnchorIndex]);
35
+ switch (object.type) {
36
+ case "line":
37
+ return /*#__PURE__*/_jsx(AnimatedLine, {
38
+ object: object,
39
+ canvasSize: canvasSize,
40
+ isDragging: isDragging,
41
+ draggingAnchorIndex: draggingAnchorIndex,
42
+ dragOffsetX: dragOffsetX,
43
+ dragOffsetY: dragOffsetY
44
+ });
45
+ case "measure":
46
+ return /*#__PURE__*/_jsx(AnimatedMeasurement, {
47
+ object: object,
48
+ canvasSize: canvasSize,
49
+ isDragging: isDragging,
50
+ draggingAnchorIndex: draggingAnchorIndex,
51
+ dragOffsetX: dragOffsetX,
52
+ dragOffsetY: dragOffsetY
53
+ });
54
+ case "arrow":
55
+ return /*#__PURE__*/_jsx(AnimatedArrow, {
56
+ object: object,
57
+ canvasSize: canvasSize,
58
+ isDragging: isDragging,
59
+ draggingAnchorIndex: draggingAnchorIndex,
60
+ dragOffsetX: dragOffsetX,
61
+ dragOffsetY: dragOffsetY
62
+ });
63
+ case "rectangle":
64
+ return /*#__PURE__*/_jsx(AnimatedRect, {
65
+ object: object,
66
+ canvasSize: canvasSize,
67
+ isDragging: isDragging,
68
+ draggingAnchorIndex: draggingAnchorIndex,
69
+ dragOffsetX: dragOffsetX,
70
+ dragOffsetY: dragOffsetY
71
+ });
72
+ case "circle":
73
+ return /*#__PURE__*/_jsx(AnimatedOval, {
74
+ object: object,
75
+ canvasSize: canvasSize,
76
+ isDragging: isDragging,
77
+ draggingAnchorIndex: draggingAnchorIndex,
78
+ dragOffsetX: dragOffsetX,
79
+ dragOffsetY: dragOffsetY
80
+ });
81
+ case "freehand":
82
+ return /*#__PURE__*/_jsx(AnimatedFreehand, {
83
+ object: object,
84
+ canvasSize: canvasSize,
85
+ isDragging: isDragging,
86
+ draggingAnchorIndex: draggingAnchorIndex,
87
+ dragOffsetX: dragOffsetX,
88
+ dragOffsetY: dragOffsetY
89
+ });
90
+ case "polygon":
91
+ return /*#__PURE__*/_jsx(AnimatedPolygon, {
92
+ object: object,
93
+ canvasSize: canvasSize,
94
+ isDragging: isDragging,
95
+ draggingAnchorIndex: draggingAnchorIndex,
96
+ dragOffsetX: dragOffsetX,
97
+ dragOffsetY: dragOffsetY
98
+ });
99
+ case "text":
100
+ return null;
101
+ }
102
+ });
103
+
104
+ // ─── Shared types ────────────────────────────────────────────────────────────
105
+
106
+ /**
107
+ * Hook: compute animated from/to pixel positions for a two-point object.
108
+ * - anchor -1 (move): both points shift
109
+ * - anchor 0: only `from` shifts
110
+ * - anchor 1: only `to` shifts
111
+ */
112
+ function useAnimatedEndpoints(object, canvasSize, isDragging, draggingAnchorIndex, dragOffsetX, dragOffsetY) {
113
+ const baseFrom = useMemo(() => denormalize(object.from, canvasSize), [object.from, canvasSize]);
114
+ const baseTo = useMemo(() => denormalize(object.to, canvasSize), [object.to, canvasSize]);
115
+ const fromX = useDerivedValue(() => {
116
+ if (!isDragging.value) return baseFrom.x;
117
+ // Move or resize anchor 0 → from moves
118
+ if (draggingAnchorIndex.value <= 0) return baseFrom.x + dragOffsetX.value;
119
+ return baseFrom.x;
120
+ });
121
+ const fromY = useDerivedValue(() => {
122
+ if (!isDragging.value) return baseFrom.y;
123
+ if (draggingAnchorIndex.value <= 0) return baseFrom.y + dragOffsetY.value;
124
+ return baseFrom.y;
125
+ });
126
+ const toX = useDerivedValue(() => {
127
+ if (!isDragging.value) return baseTo.x;
128
+ // Move or resize anchor 1 → to moves
129
+ if (draggingAnchorIndex.value < 0 || draggingAnchorIndex.value === 1) return baseTo.x + dragOffsetX.value;
130
+ return baseTo.x;
131
+ });
132
+ const toY = useDerivedValue(() => {
133
+ if (!isDragging.value) return baseTo.y;
134
+ if (draggingAnchorIndex.value < 0 || draggingAnchorIndex.value === 1) return baseTo.y + dragOffsetY.value;
135
+ return baseTo.y;
136
+ });
137
+ return {
138
+ fromX,
139
+ fromY,
140
+ toX,
141
+ toY
142
+ };
143
+ }
144
+
145
+ // ─── Line / Measure ──────────────────────────────────────────────────────────
146
+
147
+ function AnimatedLine({
148
+ object,
149
+ canvasSize,
150
+ isDragging,
151
+ draggingAnchorIndex,
152
+ dragOffsetX,
153
+ dragOffsetY
154
+ }) {
155
+ const {
156
+ fromX,
157
+ fromY,
158
+ toX,
159
+ toY
160
+ } = useAnimatedEndpoints(object, canvasSize, isDragging, draggingAnchorIndex, dragOffsetX, dragOffsetY);
161
+ const p1 = useDerivedValue(() => ({
162
+ x: fromX.value,
163
+ y: fromY.value
164
+ }));
165
+ const p2 = useDerivedValue(() => ({
166
+ x: toX.value,
167
+ y: toY.value
168
+ }));
169
+ return /*#__PURE__*/_jsx(SkiaLine, {
170
+ p1: p1,
171
+ p2: p2,
172
+ color: object.color,
173
+ style: "stroke",
174
+ strokeWidth: object.lineWidth,
175
+ strokeCap: "round"
176
+ });
177
+ }
178
+
179
+ // ─── Arrow ───────────────────────────────────────────────────────────────────
180
+
181
+ function AnimatedArrow({
182
+ object,
183
+ canvasSize,
184
+ isDragging,
185
+ draggingAnchorIndex,
186
+ dragOffsetX,
187
+ dragOffsetY
188
+ }) {
189
+ const {
190
+ fromX,
191
+ fromY,
192
+ toX,
193
+ toY
194
+ } = useAnimatedEndpoints(object, canvasSize, isDragging, draggingAnchorIndex, dragOffsetX, dragOffsetY);
195
+ const arrowPath = useDerivedValue(() => {
196
+ const p = Skia.Path.Make();
197
+ const fx = fromX.value;
198
+ const fy = fromY.value;
199
+ const tx = toX.value;
200
+ const ty = toY.value;
201
+ const ddx = tx - fx;
202
+ const ddy = ty - fy;
203
+ const len = Math.sqrt(ddx * ddx + ddy * ddy);
204
+ if (len === 0) return p;
205
+ const angle = Math.atan2(ddy, ddx);
206
+ const cos = Math.cos(angle);
207
+ const sin = Math.sin(angle);
208
+ const lw = object.lineWidth;
209
+ if (lw < 8) {
210
+ const headLen = lw * 2;
211
+ const headW = lw * 2;
212
+ p.moveTo(fx, fy);
213
+ p.lineTo(tx, ty);
214
+ const hx1 = tx - headLen * cos + headW / 2 * sin;
215
+ const hy1 = ty - headLen * sin - headW / 2 * cos;
216
+ const hx2 = tx - headLen * cos - headW / 2 * sin;
217
+ const hy2 = ty - headLen * sin + headW / 2 * cos;
218
+ p.moveTo(tx, ty);
219
+ p.lineTo(hx1, hy1);
220
+ p.moveTo(tx, ty);
221
+ p.lineTo(hx2, hy2);
222
+ } else {
223
+ const headLen = lw * 3;
224
+ const headW = lw * 3;
225
+ const bodyW = lw;
226
+ const bodyLen = Math.max(0, len - headLen);
227
+ const halfBody = bodyW / 2;
228
+ const tf = (px, py) => ({
229
+ x: fx + px * cos - py * sin,
230
+ y: fy + px * sin + py * cos
231
+ });
232
+ const tb1 = tf(0, -halfBody);
233
+ const tb2 = tf(bodyLen, -halfBody);
234
+ const tb3 = tf(bodyLen, halfBody);
235
+ const tb4 = tf(0, halfBody);
236
+ const th1 = tf(bodyLen, -headW / 2);
237
+ const th2 = tf(len, 0);
238
+ const th3 = tf(bodyLen, headW / 2);
239
+ p.moveTo(tb1.x, tb1.y);
240
+ p.lineTo(tb2.x, tb2.y);
241
+ p.lineTo(tb3.x, tb3.y);
242
+ p.lineTo(tb4.x, tb4.y);
243
+ p.close();
244
+ p.moveTo(th1.x, th1.y);
245
+ p.lineTo(th2.x, th2.y);
246
+ p.lineTo(th3.x, th3.y);
247
+ p.close();
248
+ }
249
+ return p;
250
+ });
251
+ if (object.lineWidth < 8) {
252
+ return /*#__PURE__*/_jsx(Path, {
253
+ path: arrowPath,
254
+ style: "stroke",
255
+ strokeWidth: object.lineWidth,
256
+ color: object.color,
257
+ strokeCap: "round",
258
+ strokeJoin: "round"
259
+ });
260
+ }
261
+ return /*#__PURE__*/_jsx(Path, {
262
+ path: arrowPath,
263
+ style: "fill",
264
+ color: object.color
265
+ });
266
+ }
267
+
268
+ // ─── Rectangle ───────────────────────────────────────────────────────────────
269
+
270
+ function AnimatedRect({
271
+ object,
272
+ canvasSize,
273
+ isDragging,
274
+ draggingAnchorIndex,
275
+ dragOffsetX,
276
+ dragOffsetY
277
+ }) {
278
+ const {
279
+ fromX,
280
+ fromY,
281
+ toX,
282
+ toY
283
+ } = useAnimatedEndpoints(object, canvasSize, isDragging, draggingAnchorIndex, dragOffsetX, dragOffsetY);
284
+ const x = useDerivedValue(() => Math.min(fromX.value, toX.value));
285
+ const y = useDerivedValue(() => Math.min(fromY.value, toY.value));
286
+ const width = useDerivedValue(() => Math.abs(toX.value - fromX.value));
287
+ const height = useDerivedValue(() => Math.abs(toY.value - fromY.value));
288
+ const hasFill = object.backgroundColor && object.backgroundAlpha;
289
+ const fillColor = hasFill ? object.backgroundColor.replace(/[\d.]+\)$/, `${object.backgroundAlpha})`) : undefined;
290
+ return /*#__PURE__*/_jsxs(Group, {
291
+ children: [fillColor && /*#__PURE__*/_jsx(Rect, {
292
+ x: x,
293
+ y: y,
294
+ width: width,
295
+ height: height,
296
+ color: fillColor,
297
+ style: "fill"
298
+ }), /*#__PURE__*/_jsx(Rect, {
299
+ x: x,
300
+ y: y,
301
+ width: width,
302
+ height: height,
303
+ color: object.color,
304
+ style: "stroke",
305
+ strokeWidth: object.lineWidth
306
+ })]
307
+ });
308
+ }
309
+
310
+ // ─── Circle / Oval ───────────────────────────────────────────────────────────
311
+
312
+ function AnimatedOval({
313
+ object,
314
+ canvasSize,
315
+ isDragging,
316
+ draggingAnchorIndex,
317
+ dragOffsetX,
318
+ dragOffsetY
319
+ }) {
320
+ const {
321
+ fromX,
322
+ fromY,
323
+ toX,
324
+ toY
325
+ } = useAnimatedEndpoints(object, canvasSize, isDragging, draggingAnchorIndex, dragOffsetX, dragOffsetY);
326
+ const x = useDerivedValue(() => Math.min(fromX.value, toX.value));
327
+ const y = useDerivedValue(() => Math.min(fromY.value, toY.value));
328
+ const width = useDerivedValue(() => Math.abs(toX.value - fromX.value));
329
+ const height = useDerivedValue(() => Math.abs(toY.value - fromY.value));
330
+ const hasFill = object.backgroundColor && object.backgroundAlpha;
331
+ const fillColor = hasFill ? object.backgroundColor.replace(/[\d.]+\)$/, `${object.backgroundAlpha})`) : undefined;
332
+ return /*#__PURE__*/_jsxs(Group, {
333
+ children: [fillColor && /*#__PURE__*/_jsx(Oval, {
334
+ x: x,
335
+ y: y,
336
+ width: width,
337
+ height: height,
338
+ color: fillColor,
339
+ style: "fill"
340
+ }), /*#__PURE__*/_jsx(Oval, {
341
+ x: x,
342
+ y: y,
343
+ width: width,
344
+ height: height,
345
+ color: object.color,
346
+ style: "stroke",
347
+ strokeWidth: object.lineWidth
348
+ })]
349
+ });
350
+ }
351
+
352
+ // ─── Freehand ────────────────────────────────────────────────────────────────
353
+
354
+ function AnimatedFreehand({
355
+ object,
356
+ canvasSize,
357
+ isDragging,
358
+ draggingAnchorIndex,
359
+ dragOffsetX,
360
+ dragOffsetY
361
+ }) {
362
+ const pathString = useMemo(() => {
363
+ const denormalized = denormalizePoints(object.points, canvasSize);
364
+ return buildSmoothedPath(denormalized);
365
+ }, [object.points, canvasSize]);
366
+
367
+ // For freehand, we use a Group transform for whole-object move.
368
+ // Anchor-specific resize isn't well suited to visual preview for freehand.
369
+ const transform = useDerivedValue(() => {
370
+ if (!isDragging.value) return [{
371
+ translateX: 0
372
+ }, {
373
+ translateY: 0
374
+ }];
375
+ if (draggingAnchorIndex.value < 0) {
376
+ return [{
377
+ translateX: dragOffsetX.value
378
+ }, {
379
+ translateY: dragOffsetY.value
380
+ }];
381
+ }
382
+ // For endpoint resize on freehand, no visual preview of the path deformation
383
+ return [{
384
+ translateX: 0
385
+ }, {
386
+ translateY: 0
387
+ }];
388
+ });
389
+ if (!pathString) return null;
390
+ return /*#__PURE__*/_jsx(Group, {
391
+ transform: transform,
392
+ children: /*#__PURE__*/_jsx(Path, {
393
+ path: pathString,
394
+ style: "stroke",
395
+ strokeWidth: object.lineWidth,
396
+ color: object.color,
397
+ strokeCap: "round",
398
+ strokeJoin: "round"
399
+ })
400
+ });
401
+ }
402
+
403
+ // ─── Polygon ─────────────────────────────────────────────────────────────────
404
+
405
+ function AnimatedPolygon({
406
+ object,
407
+ canvasSize,
408
+ isDragging,
409
+ draggingAnchorIndex,
410
+ dragOffsetX,
411
+ dragOffsetY
412
+ }) {
413
+ const basePoints = useMemo(() => denormalizePoints(object.points, canvasSize), [object.points, canvasSize]);
414
+
415
+ // Build animated path; move-all translates, vertex-drag moves one point
416
+ const animatedPath = useDerivedValue(() => {
417
+ const p = Skia.Path.Make();
418
+ if (basePoints.length < 2) return p;
419
+ for (let i = 0; i < basePoints.length; i++) {
420
+ let x = basePoints[i].x;
421
+ let y = basePoints[i].y;
422
+ if (isDragging.value) {
423
+ if (draggingAnchorIndex.value < 0) {
424
+ // Move whole object
425
+ x += dragOffsetX.value;
426
+ y += dragOffsetY.value;
427
+ } else if (draggingAnchorIndex.value === i) {
428
+ // Move single vertex
429
+ x += dragOffsetX.value;
430
+ y += dragOffsetY.value;
431
+ }
432
+ }
433
+ if (i === 0) p.moveTo(x, y);else p.lineTo(x, y);
434
+ }
435
+ if (object.closed) p.close();
436
+ return p;
437
+ });
438
+ const hasFill = object.closed && object.backgroundColor && object.backgroundAlpha;
439
+ const fillColor = hasFill ? object.backgroundColor.replace(/[\d.]+\)$/, `${object.backgroundAlpha})`) : undefined;
440
+ return /*#__PURE__*/_jsxs(Group, {
441
+ children: [fillColor && /*#__PURE__*/_jsx(Path, {
442
+ path: animatedPath,
443
+ style: "fill",
444
+ color: fillColor
445
+ }), /*#__PURE__*/_jsx(Path, {
446
+ path: animatedPath,
447
+ style: "stroke",
448
+ strokeWidth: object.lineWidth,
449
+ color: object.color,
450
+ strokeCap: "round",
451
+ strokeJoin: "round"
452
+ })]
453
+ });
454
+ }
455
+
456
+ // ─── Measurement ─────────────────────────────────────────────────────────────
457
+
458
+ function AnimatedMeasurement({
459
+ object,
460
+ canvasSize,
461
+ isDragging,
462
+ draggingAnchorIndex,
463
+ dragOffsetX,
464
+ dragOffsetY
465
+ }) {
466
+ const {
467
+ fromX,
468
+ fromY,
469
+ toX,
470
+ toY
471
+ } = useAnimatedEndpoints(object, canvasSize, isDragging, draggingAnchorIndex, dragOffsetX, dragOffsetY);
472
+ const labelText = `${object.text}${object.unit}`;
473
+ const hasLabel = object.text.length > 0;
474
+ const fontSize = Math.max(14, object.lineWidth * 3);
475
+ const font = useMemo(() => matchFont({
476
+ fontFamily: FONT_FAMILY,
477
+ fontSize
478
+ }), [fontSize]);
479
+ const textWidth = useMemo(() => {
480
+ if (!hasLabel) return 0;
481
+ return font.getTextWidth(labelText);
482
+ }, [font, labelText, hasLabel]);
483
+ const gapHalfWidth = hasLabel ? textWidth / 2 + TEXT_GAP_PADDING : 0;
484
+ const measurePath = useDerivedValue(() => {
485
+ const p = Skia.Path.Make();
486
+ const fx = fromX.value;
487
+ const fy = fromY.value;
488
+ const tx = toX.value;
489
+ const ty = toY.value;
490
+ const ddx = tx - fx;
491
+ const ddy = ty - fy;
492
+ const len = Math.sqrt(ddx * ddx + ddy * ddy);
493
+ if (len === 0) return p;
494
+ const angle = Math.atan2(ddy, ddx);
495
+ const cos = Math.cos(angle);
496
+ const sin = Math.sin(angle);
497
+ const perpCos = Math.cos(angle + Math.PI / 2);
498
+ const perpSin = Math.sin(angle + Math.PI / 2);
499
+ const lw = object.lineWidth;
500
+ const headLen = Math.min(lw * 3, len / 4);
501
+ const headW = lw * 2;
502
+ const extLen = lw * 4;
503
+ const mx = (fx + tx) / 2;
504
+ const my = (fy + ty) / 2;
505
+
506
+ // Main line with gap for label
507
+ if (gapHalfWidth > 0 && len > gapHalfWidth * 2) {
508
+ const gsX = mx - gapHalfWidth * cos;
509
+ const gsY = my - gapHalfWidth * sin;
510
+ const geX = mx + gapHalfWidth * cos;
511
+ const geY = my + gapHalfWidth * sin;
512
+ p.moveTo(fx, fy);
513
+ p.lineTo(gsX, gsY);
514
+ p.moveTo(geX, geY);
515
+ p.lineTo(tx, ty);
516
+ } else {
517
+ p.moveTo(fx, fy);
518
+ p.lineTo(tx, ty);
519
+ }
520
+
521
+ // Arrowhead at "from" pointing toward "to"
522
+ const ah1x = fx + headLen * cos + headW / 2 * perpCos;
523
+ const ah1y = fy + headLen * sin + headW / 2 * perpSin;
524
+ const ah2x = fx + headLen * cos - headW / 2 * perpCos;
525
+ const ah2y = fy + headLen * sin - headW / 2 * perpSin;
526
+ p.moveTo(fx, fy);
527
+ p.lineTo(ah1x, ah1y);
528
+ p.moveTo(fx, fy);
529
+ p.lineTo(ah2x, ah2y);
530
+
531
+ // Arrowhead at "to" pointing toward "from"
532
+ const bh1x = tx - headLen * cos + headW / 2 * perpCos;
533
+ const bh1y = ty - headLen * sin + headW / 2 * perpSin;
534
+ const bh2x = tx - headLen * cos - headW / 2 * perpCos;
535
+ const bh2y = ty - headLen * sin - headW / 2 * perpSin;
536
+ p.moveTo(tx, ty);
537
+ p.lineTo(bh1x, bh1y);
538
+ p.moveTo(tx, ty);
539
+ p.lineTo(bh2x, bh2y);
540
+
541
+ // Extension lines
542
+ if (object.measureStyle === 0 || object.measureStyle === 2) {
543
+ p.moveTo(fx + extLen * perpCos, fy + extLen * perpSin);
544
+ p.lineTo(fx - extLen * perpCos, fy - extLen * perpSin);
545
+ p.moveTo(tx + extLen * perpCos, ty + extLen * perpSin);
546
+ p.lineTo(tx - extLen * perpCos, ty - extLen * perpSin);
547
+ }
548
+ return p;
549
+ });
550
+
551
+ // Animated text transform: translate to midpoint + rotate
552
+ const textTransform = useDerivedValue(() => {
553
+ const mx = (fromX.value + toX.value) / 2;
554
+ const my = (fromY.value + toY.value) / 2;
555
+ const rawAngle = Math.atan2(toY.value - fromY.value, toX.value - fromX.value);
556
+ const finalAngle = rawAngle > Math.PI / 2 ? rawAngle - Math.PI : rawAngle < -Math.PI / 2 ? rawAngle + Math.PI : rawAngle;
557
+ return [{
558
+ translateX: mx
559
+ }, {
560
+ translateY: my
561
+ }, {
562
+ rotate: finalAngle
563
+ }];
564
+ });
565
+ const textX = -textWidth / 2;
566
+ const textY = fontSize / 3;
567
+ return /*#__PURE__*/_jsxs(Group, {
568
+ children: [/*#__PURE__*/_jsx(Path, {
569
+ path: measurePath,
570
+ style: "stroke",
571
+ strokeWidth: object.lineWidth,
572
+ color: object.color,
573
+ strokeCap: "round",
574
+ strokeJoin: "round"
575
+ }), hasLabel && /*#__PURE__*/_jsx(Group, {
576
+ transform: textTransform,
577
+ children: /*#__PURE__*/_jsx(Text, {
578
+ x: textX,
579
+ y: textY,
580
+ text: labelText,
581
+ font: font,
582
+ color: object.color
583
+ })
584
+ })]
585
+ });
586
+ }
587
+ //# sourceMappingURL=SelectedObjectRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","Platform","Line","SkiaLine","Rect","Oval","Group","Path","Skia","Text","matchFont","useDerivedValue","denormalize","denormalizePoints","buildSmoothedPath","jsx","_jsx","jsxs","_jsxs","FONT_FAMILY","OS","TEXT_GAP_PADDING","SelectedObjectRenderer","memo","object","canvasSize","isDragging","draggingAnchorIndex","dragOffsetX","dragOffsetY","value","type","AnimatedLine","AnimatedMeasurement","AnimatedArrow","AnimatedRect","AnimatedOval","AnimatedFreehand","AnimatedPolygon","useAnimatedEndpoints","baseFrom","from","baseTo","to","fromX","x","fromY","y","toX","toY","p1","p2","color","style","strokeWidth","lineWidth","strokeCap","arrowPath","p","Make","fx","fy","tx","ty","ddx","ddy","len","Math","sqrt","angle","atan2","cos","sin","lw","headLen","headW","moveTo","lineTo","hx1","hy1","hx2","hy2","bodyW","bodyLen","max","halfBody","tf","px","py","tb1","tb2","tb3","tb4","th1","th2","th3","close","path","strokeJoin","min","width","abs","height","hasFill","backgroundColor","backgroundAlpha","fillColor","replace","undefined","children","pathString","denormalized","points","transform","translateX","translateY","basePoints","animatedPath","length","i","closed","labelText","text","unit","hasLabel","fontSize","font","fontFamily","textWidth","getTextWidth","gapHalfWidth","measurePath","perpCos","PI","perpSin","extLen","mx","my","gsX","gsY","geX","geY","ah1x","ah1y","ah2x","ah2y","bh1x","bh1y","bh2x","bh2y","measureStyle","textTransform","rawAngle","finalAngle","rotate","textX","textY"],"sourceRoot":"../../../src","sources":["renderers/SelectedObjectRenderer.tsx"],"mappings":"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","ignoreList":[]}