@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,181 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useShapeGesture = useShapeGesture;
7
+ var _react = require("react");
8
+ var _reactNativeGestureHandler = require("react-native-gesture-handler");
9
+ var _reactNativeReanimated = require("react-native-reanimated");
10
+ var _coordinates = require("../utils/coordinates");
11
+ var _serialization = require("../utils/serialization");
12
+ var _useDrawingStore = require("../store/useDrawingStore");
13
+ const MIN_GESTURE_DURATION_MS = 300;
14
+ const MIN_GESTURE_DISTANCE = 5;
15
+ function useShapeGesture({
16
+ shapeType,
17
+ colorSV,
18
+ lineWidthSV,
19
+ fillColorSV,
20
+ fillAlphaSV,
21
+ canvasSize,
22
+ enabled,
23
+ imageOffsetX,
24
+ imageOffsetY,
25
+ imageWidth,
26
+ imageHeight,
27
+ viewScale,
28
+ viewTranslateX,
29
+ viewTranslateY,
30
+ onMeasureCreated
31
+ }) {
32
+ // Shared values for the in-progress shape (pixel coords)
33
+ const startX = (0, _reactNativeReanimated.useSharedValue)(0);
34
+ const startY = (0, _reactNativeReanimated.useSharedValue)(0);
35
+ const currentX = (0, _reactNativeReanimated.useSharedValue)(0);
36
+ const currentY = (0, _reactNativeReanimated.useSharedValue)(0);
37
+ const isDrawing = (0, _reactNativeReanimated.useSharedValue)(false);
38
+ const gestureStartTime = (0, _reactNativeReanimated.useSharedValue)(0);
39
+ const addObject = (0, _useDrawingStore.useDrawingStore)(s => s.addObject);
40
+ const inProgressColor = (0, _reactNativeReanimated.useDerivedValue)(() => colorSV.value);
41
+ const inProgressWidth = (0, _reactNativeReanimated.useDerivedValue)(() => lineWidthSV.value);
42
+ const inProgressFillColor = (0, _reactNativeReanimated.useDerivedValue)(() => fillColorSV.value);
43
+ const inProgressFillAlpha = (0, _reactNativeReanimated.useDerivedValue)(() => fillAlphaSV.value);
44
+ const commitShape = (0, _react.useCallback)((sx, sy, ex, ey, color, lineWidth, fillColor, fillAlpha) => {
45
+ const from = (0, _coordinates.normalize)({
46
+ x: sx,
47
+ y: sy
48
+ }, canvasSize);
49
+ const to = (0, _coordinates.normalize)({
50
+ x: ex,
51
+ y: ey
52
+ }, canvasSize);
53
+ let obj;
54
+ switch (shapeType) {
55
+ case "line":
56
+ obj = {
57
+ id: (0, _serialization.generateId)(),
58
+ type: "line",
59
+ from,
60
+ to,
61
+ color,
62
+ lineWidth
63
+ };
64
+ break;
65
+ case "arrow":
66
+ obj = {
67
+ id: (0, _serialization.generateId)(),
68
+ type: "arrow",
69
+ from,
70
+ to,
71
+ color,
72
+ lineWidth
73
+ };
74
+ break;
75
+ case "rectangle":
76
+ obj = {
77
+ id: (0, _serialization.generateId)(),
78
+ type: "rectangle",
79
+ from,
80
+ to,
81
+ color,
82
+ lineWidth,
83
+ backgroundColor: fillColor ?? undefined,
84
+ backgroundAlpha: fillColor ? fillAlpha : undefined
85
+ };
86
+ break;
87
+ case "circle":
88
+ obj = {
89
+ id: (0, _serialization.generateId)(),
90
+ type: "circle",
91
+ from,
92
+ to,
93
+ color,
94
+ lineWidth,
95
+ backgroundColor: fillColor ?? undefined,
96
+ backgroundAlpha: fillColor ? fillAlpha : undefined
97
+ };
98
+ break;
99
+ case "measure":
100
+ {
101
+ const measureId = (0, _serialization.generateId)();
102
+ obj = {
103
+ id: measureId,
104
+ type: "measure",
105
+ from,
106
+ to,
107
+ color,
108
+ lineWidth,
109
+ text: "",
110
+ unit: "cm",
111
+ measureStyle: 0
112
+ };
113
+ break;
114
+ }
115
+ }
116
+ addObject(obj);
117
+ if (shapeType === "measure" && onMeasureCreated) {
118
+ onMeasureCreated(obj.id);
119
+ }
120
+ }, [canvasSize, shapeType, addObject, onMeasureCreated]);
121
+ const gesture = _reactNativeGestureHandler.Gesture.Pan().enabled(enabled).maxPointers(1).minDistance(0).onBegin(e => {
122
+ "worklet";
123
+
124
+ const canvas = (0, _coordinates.screenToCanvas)(e.x, e.y, viewScale.value, viewTranslateX.value, viewTranslateY.value);
125
+ const x = Math.max(0, Math.min(imageWidth.value, canvas.x - imageOffsetX.value));
126
+ const y = Math.max(0, Math.min(imageHeight.value, canvas.y - imageOffsetY.value));
127
+ isDrawing.value = true;
128
+ gestureStartTime.value = Date.now();
129
+ startX.value = x;
130
+ startY.value = y;
131
+ currentX.value = x;
132
+ currentY.value = y;
133
+ }).onUpdate(e => {
134
+ "worklet";
135
+
136
+ const canvas = (0, _coordinates.screenToCanvas)(e.x, e.y, viewScale.value, viewTranslateX.value, viewTranslateY.value);
137
+ currentX.value = Math.max(0, Math.min(imageWidth.value, canvas.x - imageOffsetX.value));
138
+ currentY.value = Math.max(0, Math.min(imageHeight.value, canvas.y - imageOffsetY.value));
139
+ }).onEnd(e => {
140
+ "worklet";
141
+
142
+ const canvas = (0, _coordinates.screenToCanvas)(e.x, e.y, viewScale.value, viewTranslateX.value, viewTranslateY.value);
143
+ const clampedX = Math.max(0, Math.min(imageWidth.value, canvas.x - imageOffsetX.value));
144
+ const clampedY = Math.max(0, Math.min(imageHeight.value, canvas.y - imageOffsetY.value));
145
+ const duration = Date.now() - gestureStartTime.value;
146
+ const dx = clampedX - startX.value;
147
+ const dy = clampedY - startY.value;
148
+ const dist = Math.sqrt(dx * dx + dy * dy);
149
+ if (duration < MIN_GESTURE_DURATION_MS && dist < MIN_GESTURE_DISTANCE) {
150
+ isDrawing.value = false;
151
+ return;
152
+ }
153
+ const sx = startX.value;
154
+ const sy = startY.value;
155
+ const ex = currentX.value;
156
+ const ey = currentY.value;
157
+ const color = colorSV.value;
158
+ const lw = lineWidthSV.value;
159
+ const fc = fillColorSV.value;
160
+ const fa = fillAlphaSV.value;
161
+ isDrawing.value = false;
162
+ (0, _reactNativeReanimated.runOnJS)(commitShape)(sx, sy, ex, ey, color, lw, fc, fa);
163
+ }).onFinalize(() => {
164
+ "worklet";
165
+
166
+ isDrawing.value = false;
167
+ });
168
+ return {
169
+ gesture,
170
+ startX,
171
+ startY,
172
+ currentX,
173
+ currentY,
174
+ isDrawing,
175
+ inProgressColor,
176
+ inProgressWidth,
177
+ inProgressFillColor,
178
+ inProgressFillAlpha
179
+ };
180
+ }
181
+ //# sourceMappingURL=useShapeGesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNativeGestureHandler","_reactNativeReanimated","_coordinates","_serialization","_useDrawingStore","MIN_GESTURE_DURATION_MS","MIN_GESTURE_DISTANCE","useShapeGesture","shapeType","colorSV","lineWidthSV","fillColorSV","fillAlphaSV","canvasSize","enabled","imageOffsetX","imageOffsetY","imageWidth","imageHeight","viewScale","viewTranslateX","viewTranslateY","onMeasureCreated","startX","useSharedValue","startY","currentX","currentY","isDrawing","gestureStartTime","addObject","useDrawingStore","s","inProgressColor","useDerivedValue","value","inProgressWidth","inProgressFillColor","inProgressFillAlpha","commitShape","useCallback","sx","sy","ex","ey","color","lineWidth","fillColor","fillAlpha","from","normalize","x","y","to","obj","id","generateId","type","backgroundColor","undefined","backgroundAlpha","measureId","text","unit","measureStyle","gesture","Gesture","Pan","maxPointers","minDistance","onBegin","e","canvas","screenToCanvas","Math","max","min","Date","now","onUpdate","onEnd","clampedX","clampedY","duration","dx","dy","dist","sqrt","lw","fc","fa","runOnJS","onFinalize"],"sourceRoot":"../../../src","sources":["hooks/useShapeGesture.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useViewportGesture = useViewportGesture;
7
+ var _react = require("react");
8
+ var _reactNativeGestureHandler = require("react-native-gesture-handler");
9
+ var _reactNativeReanimated = require("react-native-reanimated");
10
+ const DEFAULT_MAX_ZOOM = 5;
11
+ const RESET_DURATION = 250;
12
+ function clampTranslate(tx, ty, scale, _layoutW, _layoutH, imgOffX, imgOffY, imgW, imgH) {
13
+ "worklet";
14
+
15
+ // The image occupies [imgOffX, imgOffY] to [imgOffX+imgW, imgOffY+imgH] in layout space.
16
+ // After zoom, the image spans imgW*scale in canvas coords, displayed from (imgOffX*scale + tx).
17
+ // We want the scaled image to cover its original area:
18
+ // - Left edge of scaled image <= left edge of original area: imgOffX*scale + tx <= imgOffX
19
+ // - Right edge of scaled image >= right edge of original area: imgOffX*scale + tx + imgW*scale >= imgOffX + imgW
20
+ // Simplify:
21
+ // tx <= imgOffX * (1 - scale)
22
+ // tx >= (imgOffX + imgW) * (1 - scale) + (layoutW - imgOffX - imgW) ... no, let's think differently.
23
+ //
24
+ // Viewport model: the canvas is rendered with transform [translate(tx,ty), scale(s)] applied from origin.
25
+ // A point at canvas coords (cx, cy) maps to screen (cx*s + tx, cy*s + ty).
26
+ // Image starts at canvas (imgOffX, imgOffY) with size (imgW, imgH).
27
+ // On screen, image top-left = (imgOffX*s + tx, imgOffY*s + ty).
28
+ // On screen, image bottom-right = ((imgOffX+imgW)*s + tx, (imgOffY+imgH)*s + ty).
29
+ //
30
+ // Constraint: image should fill the original viewport area [imgOffX..imgOffX+imgW] x [imgOffY..imgOffY+imgH]:
31
+ // imgOffX*s + tx <= imgOffX => tx <= imgOffX*(1-s)
32
+ // (imgOffX+imgW)*s + tx >= imgOffX+imgW => tx >= (imgOffX+imgW)*(1-s)
33
+ // same for Y.
34
+ const minTx = (imgOffX + imgW) * (1 - scale);
35
+ const maxTx = imgOffX * (1 - scale);
36
+ const minTy = (imgOffY + imgH) * (1 - scale);
37
+ const maxTy = imgOffY * (1 - scale);
38
+ const clampedTx = Math.min(maxTx, Math.max(minTx, tx));
39
+ const clampedTy = Math.min(maxTy, Math.max(minTy, ty));
40
+ return [clampedTx, clampedTy];
41
+ }
42
+ function useViewportGesture({
43
+ maxZoom = DEFAULT_MAX_ZOOM,
44
+ layoutWidth,
45
+ layoutHeight,
46
+ imageOffsetX,
47
+ imageOffsetY,
48
+ imageWidth,
49
+ imageHeight,
50
+ onPinchEnd
51
+ }) {
52
+ const scale = (0, _reactNativeReanimated.useSharedValue)(1);
53
+ const translateX = (0, _reactNativeReanimated.useSharedValue)(0);
54
+ const translateY = (0, _reactNativeReanimated.useSharedValue)(0);
55
+
56
+ // Saved state at gesture start
57
+ const savedScale = (0, _reactNativeReanimated.useSharedValue)(1);
58
+ const savedTranslateX = (0, _reactNativeReanimated.useSharedValue)(0);
59
+ const savedTranslateY = (0, _reactNativeReanimated.useSharedValue)(0);
60
+
61
+ // Saved focal point at pinch start (for stable zoom center)
62
+ const savedFocalX = (0, _reactNativeReanimated.useSharedValue)(0);
63
+ const savedFocalY = (0, _reactNativeReanimated.useSharedValue)(0);
64
+
65
+ // Flag to prevent 2-finger pan from interfering during pinch
66
+ const isPinching = (0, _reactNativeReanimated.useSharedValue)(false);
67
+
68
+ // ─── Pinch-to-zoom ──────────────────────────────────────────────────────
69
+ const pinchGesture = _reactNativeGestureHandler.Gesture.Pinch().onBegin(e => {
70
+ "worklet";
71
+
72
+ isPinching.value = true;
73
+ savedScale.value = scale.value;
74
+ savedTranslateX.value = translateX.value;
75
+ savedTranslateY.value = translateY.value;
76
+ savedFocalX.value = e.focalX;
77
+ savedFocalY.value = e.focalY;
78
+ }).onUpdate(e => {
79
+ "worklet";
80
+
81
+ const newScale = Math.min(maxZoom, Math.max(1, savedScale.value * e.scale));
82
+
83
+ // Canvas point under initial focal at gesture start:
84
+ const canvasFocalX = (savedFocalX.value - savedTranslateX.value) / savedScale.value;
85
+ const canvasFocalY = (savedFocalY.value - savedTranslateY.value) / savedScale.value;
86
+
87
+ // Pan delta from finger movement since gesture start:
88
+ const focalDeltaX = e.focalX - savedFocalX.value;
89
+ const focalDeltaY = e.focalY - savedFocalY.value;
90
+
91
+ // New translate: zoom around initial focal + follow finger pan
92
+ const newTx = savedFocalX.value - canvasFocalX * newScale + focalDeltaX;
93
+ const newTy = savedFocalY.value - canvasFocalY * newScale + focalDeltaY;
94
+ scale.value = newScale;
95
+ const [cx, cy] = clampTranslate(newTx, newTy, newScale, layoutWidth.value, layoutHeight.value, imageOffsetX.value, imageOffsetY.value, imageWidth.value, imageHeight.value);
96
+ translateX.value = cx;
97
+ translateY.value = cy;
98
+ }).onEnd(() => {
99
+ "worklet";
100
+
101
+ isPinching.value = false;
102
+ if (scale.value <= 1.05) {
103
+ // Snap back to 1x if close enough
104
+ scale.value = (0, _reactNativeReanimated.withTiming)(1, {
105
+ duration: RESET_DURATION
106
+ });
107
+ translateX.value = (0, _reactNativeReanimated.withTiming)(0, {
108
+ duration: RESET_DURATION
109
+ });
110
+ translateY.value = (0, _reactNativeReanimated.withTiming)(0, {
111
+ duration: RESET_DURATION
112
+ });
113
+ } else if (onPinchEnd) {
114
+ // Zoomed in — notify caller so it can deactivate the tool
115
+ (0, _reactNativeReanimated.runOnJS)(onPinchEnd)();
116
+ }
117
+ }).onFinalize(() => {
118
+ "worklet";
119
+
120
+ isPinching.value = false;
121
+ });
122
+
123
+ // ─── Two-finger pan (only when zoomed and NOT pinching) ─────────────────
124
+ const twoFingerPanGesture = _reactNativeGestureHandler.Gesture.Pan().minPointers(2).maxPointers(2).onBegin(() => {
125
+ "worklet";
126
+
127
+ savedTranslateX.value = translateX.value;
128
+ savedTranslateY.value = translateY.value;
129
+ }).onUpdate(e => {
130
+ "worklet";
131
+
132
+ // Skip if pinch is active — pinch handles its own panning
133
+ if (isPinching.value) return;
134
+ if (scale.value <= 1) return;
135
+ const newTx = savedTranslateX.value + e.translationX;
136
+ const newTy = savedTranslateY.value + e.translationY;
137
+ const [cx, cy] = clampTranslate(newTx, newTy, scale.value, layoutWidth.value, layoutHeight.value, imageOffsetX.value, imageOffsetY.value, imageWidth.value, imageHeight.value);
138
+ translateX.value = cx;
139
+ translateY.value = cy;
140
+ });
141
+
142
+ // ─── Single-finger pan (when zoomed with no active tool) ───────────────
143
+ const singleFingerPanGesture = _reactNativeGestureHandler.Gesture.Pan().minPointers(1).maxPointers(1).minDistance(5).onBegin(() => {
144
+ "worklet";
145
+
146
+ savedTranslateX.value = translateX.value;
147
+ savedTranslateY.value = translateY.value;
148
+ }).onUpdate(e => {
149
+ "worklet";
150
+
151
+ if (scale.value <= 1) return;
152
+ const newTx = savedTranslateX.value + e.translationX;
153
+ const newTy = savedTranslateY.value + e.translationY;
154
+ const [cx, cy] = clampTranslate(newTx, newTy, scale.value, layoutWidth.value, layoutHeight.value, imageOffsetX.value, imageOffsetY.value, imageWidth.value, imageHeight.value);
155
+ translateX.value = cx;
156
+ translateY.value = cy;
157
+ });
158
+
159
+ // ─── Double-tap two-finger reset ───────────────────────────────────────
160
+ const doubleTapResetGesture = _reactNativeGestureHandler.Gesture.Tap().numberOfTaps(2).minPointers(2).maxDuration(500).onEnd(() => {
161
+ "worklet";
162
+
163
+ scale.value = (0, _reactNativeReanimated.withTiming)(1, {
164
+ duration: RESET_DURATION
165
+ });
166
+ translateX.value = (0, _reactNativeReanimated.withTiming)(0, {
167
+ duration: RESET_DURATION
168
+ });
169
+ translateY.value = (0, _reactNativeReanimated.withTiming)(0, {
170
+ duration: RESET_DURATION
171
+ });
172
+ });
173
+
174
+ // ─── Programmatic reset ────────────────────────────────────────────────
175
+ const resetViewport = (0, _react.useCallback)(() => {
176
+ scale.value = (0, _reactNativeReanimated.withTiming)(1, {
177
+ duration: RESET_DURATION
178
+ });
179
+ translateX.value = (0, _reactNativeReanimated.withTiming)(0, {
180
+ duration: RESET_DURATION
181
+ });
182
+ translateY.value = (0, _reactNativeReanimated.withTiming)(0, {
183
+ duration: RESET_DURATION
184
+ });
185
+ }, [scale, translateX, translateY]);
186
+ const zoomAt = (0, _react.useCallback)((screenX, screenY, scaleFactor) => {
187
+ if (imageWidth.value <= 0 || imageHeight.value <= 0) return;
188
+ const previousScale = scale.value;
189
+ const nextScale = Math.min(maxZoom, Math.max(1, previousScale * scaleFactor));
190
+ if (Math.abs(nextScale - previousScale) < 0.001) return;
191
+ if (nextScale <= 1.05) {
192
+ scale.value = (0, _reactNativeReanimated.withTiming)(1, {
193
+ duration: RESET_DURATION
194
+ });
195
+ translateX.value = (0, _reactNativeReanimated.withTiming)(0, {
196
+ duration: RESET_DURATION
197
+ });
198
+ translateY.value = (0, _reactNativeReanimated.withTiming)(0, {
199
+ duration: RESET_DURATION
200
+ });
201
+ return;
202
+ }
203
+ const canvasFocalX = (screenX - translateX.value) / previousScale;
204
+ const canvasFocalY = (screenY - translateY.value) / previousScale;
205
+ const nextTranslateX = screenX - canvasFocalX * nextScale;
206
+ const nextTranslateY = screenY - canvasFocalY * nextScale;
207
+ const [clampedX, clampedY] = clampTranslate(nextTranslateX, nextTranslateY, nextScale, layoutWidth.value, layoutHeight.value, imageOffsetX.value, imageOffsetY.value, imageWidth.value, imageHeight.value);
208
+ scale.value = nextScale;
209
+ translateX.value = clampedX;
210
+ translateY.value = clampedY;
211
+ if (previousScale <= 1.05 && onPinchEnd) {
212
+ onPinchEnd();
213
+ }
214
+ }, [maxZoom, onPinchEnd, scale, translateX, translateY, layoutWidth, layoutHeight, imageOffsetX, imageOffsetY, imageWidth, imageHeight]);
215
+
216
+ // ─── Programmatic pan (for minimap drag) ────────────────────────────────
217
+ const panViewport = (0, _react.useCallback)((dtx, dty) => {
218
+ const newTx = translateX.value + dtx;
219
+ const newTy = translateY.value + dty;
220
+ const [cx, cy] = clampTranslate(newTx, newTy, scale.value, layoutWidth.value, layoutHeight.value, imageOffsetX.value, imageOffsetY.value, imageWidth.value, imageHeight.value);
221
+ translateX.value = cx;
222
+ translateY.value = cy;
223
+ }, [scale, translateX, translateY, layoutWidth, layoutHeight, imageOffsetX, imageOffsetY, imageWidth, imageHeight]);
224
+ return {
225
+ pinchGesture,
226
+ twoFingerPanGesture,
227
+ singleFingerPanGesture,
228
+ doubleTapResetGesture,
229
+ scale,
230
+ translateX,
231
+ translateY,
232
+ isPinching,
233
+ resetViewport,
234
+ panViewport,
235
+ zoomAt
236
+ };
237
+ }
238
+ //# sourceMappingURL=useViewportGesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNativeGestureHandler","_reactNativeReanimated","DEFAULT_MAX_ZOOM","RESET_DURATION","clampTranslate","tx","ty","scale","_layoutW","_layoutH","imgOffX","imgOffY","imgW","imgH","minTx","maxTx","minTy","maxTy","clampedTx","Math","min","max","clampedTy","useViewportGesture","maxZoom","layoutWidth","layoutHeight","imageOffsetX","imageOffsetY","imageWidth","imageHeight","onPinchEnd","useSharedValue","translateX","translateY","savedScale","savedTranslateX","savedTranslateY","savedFocalX","savedFocalY","isPinching","pinchGesture","Gesture","Pinch","onBegin","e","value","focalX","focalY","onUpdate","newScale","canvasFocalX","canvasFocalY","focalDeltaX","focalDeltaY","newTx","newTy","cx","cy","onEnd","withTiming","duration","runOnJS","onFinalize","twoFingerPanGesture","Pan","minPointers","maxPointers","translationX","translationY","singleFingerPanGesture","minDistance","doubleTapResetGesture","Tap","numberOfTaps","maxDuration","resetViewport","useCallback","zoomAt","screenX","screenY","scaleFactor","previousScale","nextScale","abs","nextTranslateX","nextTranslateY","clampedX","clampedY","panViewport","dtx","dty"],"sourceRoot":"../../../src","sources":["hooks/useViewportGesture.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ColorPalette", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ColorPalette.ColorPalette;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "DEFAULT_STROKE_COLOR", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _colors.DEFAULT_STROKE_COLOR;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "DrawingEditor", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _DrawingEditor.DrawingEditor;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "LineWidthSlider", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _LineWidthSlider.LineWidthSlider;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "PRESET_COLORS", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _colors.PRESET_COLORS;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "Toolbar", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _Toolbar.Toolbar;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "denormalize", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _coordinates.denormalize;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "denormalizePoints", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _coordinates.denormalizePoints;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "deserializeObjects", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _serialization.deserializeObjects;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "generateId", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _serialization.generateId;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "normalize", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _coordinates.normalize;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "normalizePoints", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _coordinates.normalizePoints;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "screenToCanvas", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _coordinates.screenToCanvas;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "serializeObjects", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _serialization.serializeObjects;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "useDrawingStore", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _useDrawingStore.useDrawingStore;
94
+ }
95
+ });
96
+ var _DrawingEditor = require("./DrawingEditor");
97
+ var _useDrawingStore = require("./store/useDrawingStore");
98
+ var _coordinates = require("./utils/coordinates");
99
+ var _serialization = require("./utils/serialization");
100
+ var _colors = require("./utils/colors");
101
+ var _Toolbar = require("./components/Toolbar");
102
+ var _ColorPalette = require("./components/ColorPalette");
103
+ var _LineWidthSlider = require("./components/LineWidthSlider");
104
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_DrawingEditor","require","_useDrawingStore","_coordinates","_serialization","_colors","_Toolbar","_ColorPalette","_LineWidthSlider"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AAGA,IAAAC,gBAAA,GAAAD,OAAA;AA6BA,IAAAE,YAAA,GAAAF,OAAA;AAOA,IAAAG,cAAA,GAAAH,OAAA;AAKA,IAAAI,OAAA,GAAAJ,OAAA;AAGA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}