lost-sia 2.0.1-alpha9 → 3.0.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 (411) hide show
  1. package/README.md +4 -0
  2. package/dist/Annotation/logic/Annotation.d.ts +17 -0
  3. package/dist/Annotation/logic/Annotation.js +1 -1
  4. package/dist/Annotation/ui/AnnotationComponent.d.ts +24 -0
  5. package/dist/Annotation/ui/AnnotationComponent.js +1 -1
  6. package/dist/Annotation/ui/atoms/AnnoBar.d.ts +15 -0
  7. package/dist/Annotation/ui/atoms/AnnoBar.js +1 -1
  8. package/dist/Annotation/ui/atoms/DaviIcon.d.ts +9 -0
  9. package/dist/Annotation/ui/atoms/Edge.d.ts +17 -0
  10. package/dist/Annotation/ui/atoms/Edge.js +1 -1
  11. package/dist/Annotation/ui/atoms/Node.d.ts +17 -0
  12. package/dist/Annotation/ui/atoms/Node.js +1 -1
  13. package/dist/Annotation/ui/atoms/PolygonArea.d.ts +16 -0
  14. package/dist/Annotation/ui/atoms/PolygonArea.js +1 -1
  15. package/dist/Annotation/ui/tools/BBox.d.ts +21 -0
  16. package/dist/Annotation/ui/tools/BBox.js +1 -1
  17. package/dist/Annotation/ui/tools/Line.d.ts +21 -0
  18. package/dist/Annotation/ui/tools/Line.js +1 -1
  19. package/dist/Annotation/ui/tools/Point.d.ts +16 -0
  20. package/dist/Annotation/ui/tools/Point.js +1 -1
  21. package/dist/Annotation/ui/tools/Polygon.d.ts +23 -0
  22. package/dist/Annotation/ui/tools/Polygon.js +1 -1
  23. package/dist/Canvas/Canvas.d.ts +31 -0
  24. package/dist/Canvas/Canvas.js +1 -1
  25. package/dist/Canvas/LabelInput.d.ts +11 -0
  26. package/dist/Canvas/LabelInput.js +1 -1
  27. package/dist/IconButton.d.ts +25 -0
  28. package/dist/IconButton.js +1 -0
  29. package/dist/Sia.d.ts +33 -0
  30. package/dist/Sia.js +1 -1
  31. package/dist/Toolbar/Toolbar.d.ts +21 -0
  32. package/dist/Toolbar/Toolbar.js +1 -1
  33. package/dist/Toolbar/ToolbarItems/AccessibilityTools.d.ts +7 -0
  34. package/dist/Toolbar/ToolbarItems/AccessibilityTools.js +1 -1
  35. package/dist/Toolbar/ToolbarItems/AnnoToolSelector.d.ts +11 -0
  36. package/dist/Toolbar/ToolbarItems/AnnoToolSelector.js +1 -1
  37. package/dist/Toolbar/ToolbarItems/ImageToolItems/ImageLabelInput.d.ts +11 -0
  38. package/dist/Toolbar/ToolbarItems/ImageToolItems/ImageLabelInput.js +1 -0
  39. package/dist/Toolbar/ToolbarItems/ImageToolItems/TagLabel.d.ts +11 -0
  40. package/dist/Toolbar/ToolbarItems/ImageToolItems/TagLabel.js +1 -1
  41. package/dist/Toolbar/ToolbarItems/ImageTools.d.ts +13 -0
  42. package/dist/Toolbar/ToolbarItems/ImageTools.js +1 -1
  43. package/dist/Toolbar/ToolbarItems/Instructions.d.ts +2 -0
  44. package/dist/Toolbar/ToolbarItems/InstructionsModal.d.ts +6 -0
  45. package/dist/index.d.ts +5 -0
  46. package/dist/index.js +1 -1
  47. package/dist/models/AnnotationMode.d.ts +11 -0
  48. package/dist/models/AnnotationStatus.d.ts +8 -0
  49. package/dist/models/AnnotationTool.d.ts +7 -0
  50. package/dist/models/CanvasAction.d.ts +28 -0
  51. package/dist/models/Direction.d.ts +7 -0
  52. package/dist/models/EditorModes.d.ts +11 -0
  53. package/dist/models/KeyAction.d.ts +22 -0
  54. package/dist/models/KeyAction.js +1 -1
  55. package/dist/models/NotificationType.d.ts +7 -0
  56. package/dist/models/NotificationType.js +1 -0
  57. package/dist/models/index.d.ts +6 -0
  58. package/dist/models/index.js +1 -1
  59. package/dist/stories/AnnotationTools.stories.d.ts +40 -0
  60. package/dist/stories/Canvas/Canvas.stories.d.ts +50 -0
  61. package/dist/stories/Canvas/CanvasOffset.d.ts +13 -0
  62. package/dist/stories/Canvas/CanvasWithOffset.stories.d.ts +36 -0
  63. package/dist/stories/FilterDropdown.stories.d.ts +19 -0
  64. package/dist/stories/MinimalSia.stories.d.ts +66 -0
  65. package/dist/stories/SIA/DemoWrapper.d.ts +8 -0
  66. package/dist/stories/SIA/DemoWrapper.stories.d.ts +27 -0
  67. package/dist/stories/SIA/SIA.stories.d.ts +72 -0
  68. package/dist/stories/Toolbar/ImageTools/TagLabel.stories.d.ts +21 -0
  69. package/dist/stories/Toolbar/Instructions.stories.d.ts +11 -0
  70. package/dist/stories/Toolbar/Toolbar.stories.d.ts +37 -0
  71. package/dist/stories/exampleData/exampleAnnotations.d.ts +8 -0
  72. package/dist/stories/exampleData/exampleExternalAnnotations.d.ts +8 -0
  73. package/dist/stories/exampleData/exampleImage.d.ts +2 -0
  74. package/dist/stories/exampleData/exampleLabels.d.ts +6 -0
  75. package/dist/types.d.ts +57 -0
  76. package/dist/utils/KeyMapper.d.ts +9 -0
  77. package/dist/utils/KeyMapper.js +1 -1
  78. package/dist/utils/TimeUtils.d.ts +4 -0
  79. package/dist/utils/TimeUtils.js +1 -0
  80. package/dist/utils/color.d.ts +2 -0
  81. package/dist/utils/index.d.ts +2 -0
  82. package/dist/utils/index.js +1 -1
  83. package/dist/utils/mouse.d.ts +6 -0
  84. package/dist/utils/mouse.js +1 -1
  85. package/dist/utils/siaIcons.js +5 -5
  86. package/dist/utils/transform.d.ts +28 -0
  87. package/dist/utils/transform.js +1 -1
  88. package/dist/utils/windowViewport.d.ts +22 -0
  89. package/dist/utils/windowViewport.js +1 -1
  90. package/package.json +19 -16
  91. package/src/AnnoExampleViewer.jsx +18 -18
  92. package/src/Annotation/logic/Annotation.ts +24 -26
  93. package/src/Annotation/ui/AnnotationComponent.tsx +115 -86
  94. package/src/Annotation/ui/atoms/AnnoBar.tsx +51 -53
  95. package/src/Annotation/ui/atoms/DaviIcon.tsx +12 -22
  96. package/src/Annotation/ui/atoms/Edge.tsx +25 -22
  97. package/src/Annotation/ui/atoms/Node.tsx +56 -50
  98. package/src/Annotation/ui/atoms/PolygonArea.tsx +30 -35
  99. package/src/Annotation/ui/tools/BBox.tsx +136 -150
  100. package/src/Annotation/ui/tools/Line.tsx +94 -91
  101. package/src/Annotation/ui/tools/Point.tsx +19 -17
  102. package/src/Annotation/ui/tools/Polygon.tsx +126 -95
  103. package/src/Canvas/Canvas.tsx +748 -594
  104. package/src/Canvas/LabelInput.tsx +68 -45
  105. package/src/IconButton.tsx +119 -0
  106. package/src/InfoBoxes/AnnoDetails.jsx +53 -53
  107. package/src/InfoBoxes/AnnoStats.jsx +41 -41
  108. package/src/InfoBoxes/InfoBox.jsx +16 -16
  109. package/src/InfoBoxes/InfoBoxArea.jsx +32 -34
  110. package/src/InfoBoxes/LabelInfo.jsx +30 -30
  111. package/src/SIASettingButton.jsx +25 -25
  112. package/src/Sia.tsx +484 -0
  113. package/src/Toolbar/Toolbar.tsx +38 -31
  114. package/src/Toolbar/ToolbarItems/AccessibilityTools.tsx +26 -46
  115. package/src/Toolbar/ToolbarItems/AnnoToolSelector.tsx +53 -46
  116. package/src/Toolbar/ToolbarItems/ImageToolItems/ImageLabelInput.tsx +127 -0
  117. package/src/Toolbar/ToolbarItems/ImageToolItems/TagLabel.tsx +29 -28
  118. package/src/Toolbar/ToolbarItems/ImageTools.tsx +43 -40
  119. package/src/Toolbar/ToolbarItems/Instructions.tsx +47 -50
  120. package/src/Toolbar/ToolbarItems/InstructionsModal.tsx +8 -8
  121. package/src/index.ts +9 -13
  122. package/src/models/{AnnotationMode.tsx → AnnotationMode.ts} +1 -1
  123. package/src/models/{AnnotationStatus.tsx → AnnotationStatus.ts} +1 -1
  124. package/src/models/{AnnotationTool.tsx → AnnotationTool.ts} +1 -1
  125. package/src/models/{CanvasAction.tsx → CanvasAction.ts} +1 -1
  126. package/src/models/{Direction.tsx → Direction.ts} +1 -1
  127. package/src/models/{EditorModes.tsx → EditorModes.ts} +1 -1
  128. package/src/models/{KeyAction.tsx → KeyAction.ts} +3 -1
  129. package/src/models/NotificationType.ts +8 -0
  130. package/src/models/index.ts +6 -7
  131. package/src/siaDummyData.js +71 -71
  132. package/src/stories/AnnotationTools.mdx +27 -0
  133. package/src/stories/AnnotationTools.stories.tsx +104 -0
  134. package/src/stories/Canvas/Canvas.stories.tsx +59 -113
  135. package/src/stories/Canvas/CanvasOffset.tsx +54 -38
  136. package/src/stories/Canvas/CanvasWithOffset.stories.tsx +42 -113
  137. package/src/stories/FilterDropdown.stories.ts +13 -11
  138. package/src/stories/MinimalSIA.mdx +20 -0
  139. package/src/stories/MinimalSia.stories.tsx +90 -0
  140. package/src/stories/SIA/DemoWrapper.stories.tsx +71 -0
  141. package/src/stories/SIA/DemoWrapper.tsx +55 -0
  142. package/src/stories/SIA/SIA.stories.tsx +79 -45
  143. package/src/stories/Toolbar/ImageTools/TagLabel.stories.tsx +11 -12
  144. package/src/stories/Toolbar/Instructions.stories.tsx +11 -11
  145. package/src/stories/Toolbar/Toolbar.stories.tsx +32 -47
  146. package/src/stories/Welcome.mdx +5 -0
  147. package/src/stories/development/CoordinateSystems.mdx +25 -0
  148. package/src/stories/exampleData/exampleAnnotations.ts +65 -0
  149. package/src/stories/exampleData/exampleExternalAnnotations.ts +115 -0
  150. package/src/stories/{siaDummyData2.ts → exampleData/exampleImage.ts} +3 -264
  151. package/src/stories/exampleData/exampleLabels.ts +146 -0
  152. package/src/stories/main.scss +6 -0
  153. package/src/styles/style.scss +1 -26
  154. package/src/types.ts +67 -0
  155. package/src/utils/KeyMapper.ts +76 -74
  156. package/src/utils/TimeUtils.ts +11 -0
  157. package/src/utils/color.ts +25 -25
  158. package/src/utils/hist.js +22 -22
  159. package/src/utils/index.ts +2 -3
  160. package/src/utils/mouse.ts +45 -0
  161. package/src/utils/siaIcons.jsx +5 -7
  162. package/src/utils/transform.ts +186 -0
  163. package/src/utils/uiConfig.js +19 -22
  164. package/src/utils/windowViewport.ts +34 -0
  165. package/dist/AnnoExampleViewer.cjs +0 -1
  166. package/dist/AnnoExampleViewer.js +0 -1
  167. package/dist/AnnoLabelInput.cjs +0 -1
  168. package/dist/AnnoLabelInput.js +0 -1
  169. package/dist/AnnoToolBar.cjs +0 -19
  170. package/dist/AnnoToolBar.js +0 -19
  171. package/dist/Annotation/AnnoBar.cjs +0 -1
  172. package/dist/Annotation/AnnoBar.js +0 -1
  173. package/dist/Annotation/Annotation.cjs +0 -1
  174. package/dist/Annotation/Annotation.js +0 -1
  175. package/dist/Annotation/BBox.cjs +0 -1
  176. package/dist/Annotation/BBox.js +0 -1
  177. package/dist/Annotation/Edge.cjs +0 -1
  178. package/dist/Annotation/Edge.js +0 -1
  179. package/dist/Annotation/InfSelectionArea.cjs +0 -1
  180. package/dist/Annotation/InfSelectionArea.js +0 -1
  181. package/dist/Annotation/Line.cjs +0 -1
  182. package/dist/Annotation/Line.js +0 -1
  183. package/dist/Annotation/Node.cjs +0 -1
  184. package/dist/Annotation/Node.js +0 -1
  185. package/dist/Annotation/Point.cjs +0 -1
  186. package/dist/Annotation/Point.js +0 -1
  187. package/dist/Annotation/Polygon.cjs +0 -1
  188. package/dist/Annotation/Polygon.js +0 -1
  189. package/dist/Annotation/logic/Annotation.cjs +0 -1
  190. package/dist/Annotation/logic/AnnotationUtils.cjs +0 -1
  191. package/dist/Annotation/logic/AnnotationUtils.js +0 -1
  192. package/dist/Annotation/ui/AnnotationComponent.cjs +0 -1
  193. package/dist/Annotation/ui/atoms/AnnoBar.cjs +0 -1
  194. package/dist/Annotation/ui/atoms/DaviIcon.cjs +0 -19
  195. package/dist/Annotation/ui/atoms/Edge.cjs +0 -1
  196. package/dist/Annotation/ui/atoms/Node.cjs +0 -1
  197. package/dist/Annotation/ui/atoms/PolygonArea.cjs +0 -1
  198. package/dist/Annotation/ui/tools/BBox.cjs +0 -1
  199. package/dist/Annotation/ui/tools/Line.cjs +0 -1
  200. package/dist/Annotation/ui/tools/Point.cjs +0 -1
  201. package/dist/Annotation/ui/tools/Polygon.cjs +0 -1
  202. package/dist/Canvas/Canvas.cjs +0 -1
  203. package/dist/Canvas/LabelInput.cjs +0 -1
  204. package/dist/Canvas.cjs +0 -1
  205. package/dist/Canvas.js +0 -1
  206. package/dist/ImgBar.cjs +0 -1
  207. package/dist/ImgBar.js +0 -1
  208. package/dist/InfoBoxes/AnnoDetails.cjs +0 -1
  209. package/dist/InfoBoxes/AnnoDetails.js +0 -1
  210. package/dist/InfoBoxes/AnnoStats.cjs +0 -1
  211. package/dist/InfoBoxes/AnnoStats.js +0 -1
  212. package/dist/InfoBoxes/InfoBox.cjs +0 -1
  213. package/dist/InfoBoxes/InfoBox.js +0 -1
  214. package/dist/InfoBoxes/InfoBoxArea.cjs +0 -1
  215. package/dist/InfoBoxes/InfoBoxArea.js +0 -1
  216. package/dist/InfoBoxes/LabelInfo.cjs +0 -1
  217. package/dist/InfoBoxes/LabelInfo.js +0 -1
  218. package/dist/LabelInput.cjs +0 -1
  219. package/dist/LabelInput.js +0 -1
  220. package/dist/Prompt.cjs +0 -1
  221. package/dist/Prompt.js +0 -1
  222. package/dist/SIAFilterButton.cjs +0 -1
  223. package/dist/SIAFilterButton.js +0 -1
  224. package/dist/SIASettingButton.cjs +0 -1
  225. package/dist/SIASettingButton.js +0 -1
  226. package/dist/Sia.cjs +0 -1
  227. package/dist/Sia2.cjs +0 -1
  228. package/dist/Sia2.js +0 -1
  229. package/dist/SiaPopup.cjs +0 -1
  230. package/dist/SiaPopup.js +0 -1
  231. package/dist/ToolBar.cjs +0 -1
  232. package/dist/ToolBar.js +0 -1
  233. package/dist/Toolbar/NavigationButtons.cjs +0 -1
  234. package/dist/Toolbar/NavigationButtons.js +0 -1
  235. package/dist/Toolbar/Toolbar.cjs +0 -1
  236. package/dist/Toolbar/ToolbarItems/AccessibilityTools.cjs +0 -1
  237. package/dist/Toolbar/ToolbarItems/AnnoToolSelector.cjs +0 -1
  238. package/dist/Toolbar/ToolbarItems/ImageToolItems/ImageLabel.cjs +0 -1
  239. package/dist/Toolbar/ToolbarItems/ImageToolItems/ImageLabel.js +0 -1
  240. package/dist/Toolbar/ToolbarItems/ImageToolItems/TagLabel.cjs +0 -1
  241. package/dist/Toolbar/ToolbarItems/ImageTools.cjs +0 -1
  242. package/dist/Toolbar/ToolbarItems/Instructions.cjs +0 -1
  243. package/dist/Toolbar/ToolbarItems/InstructionsModal.cjs +0 -1
  244. package/dist/ToolbarItem.cjs +0 -1
  245. package/dist/ToolbarItem.js +0 -1
  246. package/dist/_virtual/_commonjsHelpers.cjs +0 -1
  247. package/dist/_virtual/_commonjsHelpers.js +0 -1
  248. package/dist/_virtual/lodash.cjs +0 -1
  249. package/dist/_virtual/lodash.js +0 -1
  250. package/dist/assets/Annotation/Annotation-Cd5Ua5TG.css +0 -1
  251. package/dist/assets/Toolbar-Cp1xyYeH.css +0 -1
  252. package/dist/filterTools.cjs +0 -1
  253. package/dist/filterTools.js +0 -1
  254. package/dist/index.cjs +0 -1
  255. package/dist/models/AllowedTools.cjs +0 -1
  256. package/dist/models/AllowedTools.js +0 -1
  257. package/dist/models/AnnotationMode.cjs +0 -1
  258. package/dist/models/AnnotationSettings.cjs +0 -1
  259. package/dist/models/AnnotationSettings.js +0 -1
  260. package/dist/models/AnnotationStatus.cjs +0 -1
  261. package/dist/models/AnnotationTool.cjs +0 -1
  262. package/dist/models/CanvasAction.cjs +0 -1
  263. package/dist/models/Direction.cjs +0 -1
  264. package/dist/models/EditorModes.cjs +0 -1
  265. package/dist/models/ExternalAnnotation.cjs +0 -1
  266. package/dist/models/ExternalAnnotation.js +0 -1
  267. package/dist/models/KeyAction.cjs +0 -1
  268. package/dist/models/Label.cjs +0 -1
  269. package/dist/models/Label.js +0 -1
  270. package/dist/models/UiConfig.cjs +0 -1
  271. package/dist/models/UiConfig.js +0 -1
  272. package/dist/models/index.cjs +0 -1
  273. package/dist/siaDummyData.cjs +0 -7
  274. package/dist/siaDummyData.js +0 -7
  275. package/dist/stories/Canvas/CanvasOffset.cjs +0 -1
  276. package/dist/stories/Canvas/CanvasOffset.js +0 -1
  277. package/dist/stories/FilterDropdown.stories.cjs +0 -1
  278. package/dist/stories/FilterDropdown.stories.js +0 -1
  279. package/dist/stories/SIA2/DemoWrapper.cjs +0 -1
  280. package/dist/stories/SIA2/DemoWrapper.js +0 -1
  281. package/dist/stories/siaDummyData.cjs +0 -1
  282. package/dist/stories/siaDummyData.js +0 -1
  283. package/dist/stories/siaDummyData2.cjs +0 -7
  284. package/dist/stories/siaDummyData2.js +0 -7
  285. package/dist/types/annoStatus.cjs +0 -1
  286. package/dist/types/annoStatus.js +0 -1
  287. package/dist/types/canvasActions.cjs +0 -1
  288. package/dist/types/canvasActions.js +0 -1
  289. package/dist/types/cursorstyles.cjs +0 -1
  290. package/dist/types/cursorstyles.js +0 -1
  291. package/dist/types/modes.cjs +0 -1
  292. package/dist/types/modes.js +0 -1
  293. package/dist/types/notificationType.cjs +0 -1
  294. package/dist/types/notificationType.js +0 -1
  295. package/dist/types/toolbarEvents.cjs +0 -1
  296. package/dist/types/toolbarEvents.js +0 -1
  297. package/dist/types/tools.cjs +0 -1
  298. package/dist/types/tools.js +0 -1
  299. package/dist/types.cjs +0 -1
  300. package/dist/utils/KeyMapper.cjs +0 -1
  301. package/dist/utils/annoConversion.cjs +0 -1
  302. package/dist/utils/annoConversion.js +0 -1
  303. package/dist/utils/annoConversion2.cjs +0 -1
  304. package/dist/utils/annoConversion2.js +0 -1
  305. package/dist/utils/color.cjs +0 -1
  306. package/dist/utils/colorlut.cjs +0 -1
  307. package/dist/utils/colorlut.js +0 -1
  308. package/dist/utils/constraints.cjs +0 -1
  309. package/dist/utils/constraints.js +0 -1
  310. package/dist/utils/hist.cjs +0 -1
  311. package/dist/utils/hist.js +0 -1
  312. package/dist/utils/index.cjs +0 -1
  313. package/dist/utils/keyActions.cjs +0 -1
  314. package/dist/utils/keyActions.js +0 -1
  315. package/dist/utils/mouse.cjs +0 -1
  316. package/dist/utils/mouse2.cjs +0 -1
  317. package/dist/utils/mouse2.js +0 -1
  318. package/dist/utils/siaIcons.cjs +0 -12
  319. package/dist/utils/transform.cjs +0 -1
  320. package/dist/utils/transform2.cjs +0 -1
  321. package/dist/utils/transform2.js +0 -1
  322. package/dist/utils/uiConfig.cjs +0 -1
  323. package/dist/utils/windowViewport.cjs +0 -1
  324. package/dist/utils/windowViewport2.cjs +0 -1
  325. package/dist/utils/windowViewport2.js +0 -1
  326. package/src/AnnoLabelInput.jsx +0 -109
  327. package/src/AnnoToolBar.jsx +0 -153
  328. package/src/Annotation/AnnoBar.jsx +0 -154
  329. package/src/Annotation/Annotation.jsx +0 -395
  330. package/src/Annotation/Annotation.scss +0 -47
  331. package/src/Annotation/BBox.jsx +0 -299
  332. package/src/Annotation/Edge.jsx +0 -92
  333. package/src/Annotation/InfSelectionArea.jsx +0 -72
  334. package/src/Annotation/Line.jsx +0 -68
  335. package/src/Annotation/Node.jsx +0 -282
  336. package/src/Annotation/Point.jsx +0 -200
  337. package/src/Annotation/Polygon.jsx +0 -404
  338. package/src/Annotation/logic/AnnotationUtils.ts +0 -30
  339. package/src/Canvas.jsx +0 -2194
  340. package/src/ImgBar.jsx +0 -131
  341. package/src/LabelInput.jsx +0 -238
  342. package/src/Prompt.jsx +0 -45
  343. package/src/SIAFilterButton.jsx +0 -186
  344. package/src/Sia.jsx +0 -478
  345. package/src/Sia2.tsx +0 -392
  346. package/src/SiaPopup.jsx +0 -15
  347. package/src/ToolBar.jsx +0 -463
  348. package/src/Toolbar/NavigationButtons.tsx +0 -21
  349. package/src/Toolbar/ToolbarItem.jsx +0 -30
  350. package/src/Toolbar/ToolbarItems/ImageToolItems/ImageLabel.tsx +0 -62
  351. package/src/Toolbar.css +0 -13
  352. package/src/ToolbarItem.jsx +0 -31
  353. package/src/filterTools.js +0 -5
  354. package/src/models/AllowedTools.tsx +0 -9
  355. package/src/models/AnnotationSettings.tsx +0 -9
  356. package/src/models/ExternalAnnotation.ts +0 -15
  357. package/src/models/Label.tsx +0 -8
  358. package/src/models/UiConfig.tsx +0 -6
  359. package/src/stories/Button.jsx +0 -54
  360. package/src/stories/Button.stories.js +0 -48
  361. package/src/stories/Header.jsx +0 -69
  362. package/src/stories/Header.stories.js +0 -28
  363. package/src/stories/Page.jsx +0 -87
  364. package/src/stories/Page.stories.js +0 -28
  365. package/src/stories/SIA2/DemoWrapper.stories.tsx +0 -167
  366. package/src/stories/SIA2/DemoWrapper.tsx +0 -54
  367. package/src/stories/SIA2/Sia2.stories.tsx +0 -62
  368. package/src/stories/Toolbar/ImageTools/ImageLabel.stories.tsx +0 -32
  369. package/src/stories/assets/accessibility.png +0 -0
  370. package/src/stories/assets/accessibility.svg +0 -5
  371. package/src/stories/assets/addon-library.png +0 -0
  372. package/src/stories/assets/assets.png +0 -0
  373. package/src/stories/assets/avif-test-image.avif +0 -0
  374. package/src/stories/assets/context.png +0 -0
  375. package/src/stories/assets/discord.svg +0 -15
  376. package/src/stories/assets/docs.png +0 -0
  377. package/src/stories/assets/figma-plugin.png +0 -0
  378. package/src/stories/assets/github.svg +0 -3
  379. package/src/stories/assets/share.png +0 -0
  380. package/src/stories/assets/styling.png +0 -0
  381. package/src/stories/assets/testing.png +0 -0
  382. package/src/stories/assets/theming.png +0 -0
  383. package/src/stories/assets/tutorials.svg +0 -12
  384. package/src/stories/assets/youtube.svg +0 -4
  385. package/src/stories/button.css +0 -30
  386. package/src/stories/header.css +0 -32
  387. package/src/stories/lost.js +0 -54
  388. package/src/stories/page.css +0 -69
  389. package/src/stories/siaDummyData.js +0 -263
  390. package/src/stories/store.js +0 -18
  391. package/src/test.js +0 -7
  392. package/src/types/annoStatus.js +0 -4
  393. package/src/types/canvasActions.js +0 -58
  394. package/src/types/cursorstyles.js +0 -3
  395. package/src/types/modes.js +0 -9
  396. package/src/types/notificationType.js +0 -11
  397. package/src/types/toolbarEvents.js +0 -35
  398. package/src/types/tools.js +0 -17
  399. package/src/types.tsx +0 -11
  400. package/src/utils/annoConversion.js +0 -145
  401. package/src/utils/annoConversion2.ts +0 -145
  402. package/src/utils/colorlut.js +0 -68
  403. package/src/utils/constraints.js +0 -81
  404. package/src/utils/index.js +0 -1
  405. package/src/utils/keyActions.js +0 -113
  406. package/src/utils/mouse.js +0 -14
  407. package/src/utils/mouse2.ts +0 -35
  408. package/src/utils/transform.js +0 -336
  409. package/src/utils/transform2.ts +0 -343
  410. package/src/utils/windowViewport.js +0 -34
  411. package/src/utils/windowViewport2.ts +0 -50
@@ -1,31 +1,32 @@
1
- import { CSSProperties, useEffect, useRef, useState } from "react";
1
+ import { CSSProperties, MouseEvent, useEffect, useRef, useState } from 'react'
2
2
 
3
3
  // rename type to avoid naming conflict
4
- import { Point } from "../../../types";
5
- import Node from "../atoms/Node";
6
- import PolygonArea from "../atoms/PolygonArea";
7
- import AnnotationMode from "../../../models/AnnotationMode";
8
- import AnnotationSettings from "../../../models/AnnotationSettings";
9
- import Edge from "../atoms/Edge";
10
- import mouse2 from "../../../utils/mouse2";
4
+ import { AnnotationSettings, Point, SIANotification } from '../../../types'
5
+ import Node from '../atoms/Node'
6
+ import PolygonArea from '../atoms/PolygonArea'
7
+ import AnnotationMode from '../../../models/AnnotationMode'
8
+ import Edge from '../atoms/Edge'
9
+ import mouse from '../../../utils/mouse'
10
+ import { NotificationType } from '../../../models'
11
11
 
12
12
  type PolygonProps = {
13
- annotationSettings: AnnotationSettings;
14
- coordinates: Point[];
15
- isSelected: boolean;
16
- isDisabled?: boolean;
17
- annotationMode: AnnotationMode;
18
- setAnnotationMode: (annotationMode: AnnotationMode) => void;
19
- pageToStageOffset: Point;
20
- svgScale: number;
21
- style: CSSProperties;
22
- onAddNode: (coordinates: Point[]) => void;
23
- onDeleteNode: (coordinates: Point[]) => void;
24
- onFinishAnnoCreate: () => void;
25
- onIsDraggingStateChanged: (bool) => void;
26
- onMoving: (coordinates: Point[]) => void; // during moving - update coordinates in parent
27
- onMoved: () => void; // moving finished - send annotation changed event
28
- };
13
+ annotationSettings: AnnotationSettings
14
+ coordinates: Point[]
15
+ isSelected: boolean
16
+ isDisabled?: boolean
17
+ annotationMode: AnnotationMode
18
+ pageToStageOffset: Point
19
+ svgScale: number
20
+ svgTranslation: Point
21
+ style: CSSProperties
22
+ onAddNode: (coordinates: Point[]) => void
23
+ onDeleteNode: (coordinates: Point[]) => void
24
+ onFinishAnnoCreate: () => void
25
+ onIsDraggingStateChanged: (newDraggingState: boolean) => void
26
+ onMoving: (coordinates: Point[]) => void // during moving - update coordinates in parent
27
+ onMoved: () => void // moving finished - send annotation changed event
28
+ onNotification?: (notification: SIANotification) => void
29
+ }
29
30
 
30
31
  const Polygon = ({
31
32
  annotationSettings,
@@ -35,100 +36,124 @@ const Polygon = ({
35
36
  annotationMode,
36
37
  pageToStageOffset,
37
38
  svgScale,
39
+ svgTranslation,
38
40
  style,
39
41
  onAddNode,
40
42
  onDeleteNode,
41
43
  onFinishAnnoCreate,
44
+ onIsDraggingStateChanged,
42
45
  onMoving,
43
46
  onMoved,
44
- onIsDraggingStateChanged,
47
+ onNotification = (_) => {},
45
48
  }: PolygonProps) => {
46
- const [isAnnoDragging, setIsAnnoDragging] = useState<boolean>(false);
49
+ const [isAnnoDragging, setIsAnnoDragging] = useState<boolean>(false)
47
50
 
48
51
  // onMove and onMouseUp events are fired in the same frame
49
52
  // use a ref to access the updated value without waiting until the next frame
50
- const [didAnnoActuallyMove, setDidAnnoActuallyMove] =
51
- useState<boolean>(false);
52
- const didAnnoActuallyMoveRef = useRef<boolean>(didAnnoActuallyMove);
53
+ const [didAnnoActuallyMove, setDidAnnoActuallyMove] = useState<boolean>(false)
54
+ const didAnnoActuallyMoveRef = useRef<boolean>(didAnnoActuallyMove)
55
+
56
+ const handleFinishAnnoCreate = () => {
57
+ if (coordinates.length < 3)
58
+ return onNotification({
59
+ message: 'Polygons must have at least 3 nodes',
60
+ title: 'Polygon Error',
61
+ type: NotificationType.ERROR,
62
+ })
63
+
64
+ onFinishAnnoCreate()
65
+ }
53
66
 
54
67
  useEffect(() => {
55
- didAnnoActuallyMoveRef.current = didAnnoActuallyMove;
56
- }, [didAnnoActuallyMove]);
68
+ didAnnoActuallyMoveRef.current = didAnnoActuallyMove
69
+ }, [didAnnoActuallyMove])
57
70
 
58
71
  const onMouseDown = (e: MouseEvent) => {
59
- if (annotationSettings.canEdit === false) return;
72
+ if (annotationSettings.canEdit === false) return
60
73
 
61
74
  if (
62
75
  isSelected &&
63
76
  annotationMode !== AnnotationMode.CREATE &&
77
+ annotationMode !== AnnotationMode.ADD &&
64
78
  e.button === 0
65
79
  )
66
- setIsAnnoDragging(true);
80
+ setIsAnnoDragging(true)
67
81
 
68
- if (e.button === 2 && annotationMode == AnnotationMode.CREATE) {
82
+ if (
83
+ e.button === 2 &&
84
+ [AnnotationMode.CREATE, AnnotationMode.ADD].includes(annotationMode)
85
+ ) {
69
86
  const antiScaledMousePositionInStageCoordinates =
70
- mouse2.getAntiScaledMouseStagePosition(e, pageToStageOffset, svgScale);
87
+ mouse.getAntiScaledMouseStagePosition(
88
+ e,
89
+ pageToStageOffset,
90
+ svgScale,
91
+ svgTranslation,
92
+ )
71
93
 
72
- let newCoordinates = [...coordinates];
73
- newCoordinates.push(antiScaledMousePositionInStageCoordinates);
94
+ const newCoordinates = [...coordinates]
95
+ newCoordinates.push(antiScaledMousePositionInStageCoordinates)
74
96
 
75
- onAddNode(newCoordinates);
97
+ onAddNode(newCoordinates)
76
98
  }
77
- };
99
+ }
78
100
 
79
101
  const onMouseMove = (e: MouseEvent) => {
80
102
  if (isAnnoDragging) {
81
103
  // apply mouse move to all coordinates
82
104
  const movedCoordinates: Point[] = coordinates.map((coordinate: Point) => {
105
+ // counter the canvas scaling (it will be automatically applied when rendering the annotation coordinates)
106
+ const newX = (coordinate.x += e.movementX / svgScale)
107
+ const newY = (coordinate.y += e.movementY / svgScale)
83
108
  return {
84
- // counter the canvas scaling (it will be automatically applied when rendering the annotation coordinates)
85
- x: (coordinate.x += e.movementX / svgScale),
86
- y: (coordinate.y += e.movementY / svgScale),
87
- };
88
- });
109
+ x: newX,
110
+ y: newY,
111
+ }
112
+ })
89
113
 
90
114
  // only escalate event when mouse actually moved
91
115
  if (e.movementX !== 0 || e.movementY !== 0) {
92
- setDidAnnoActuallyMove(true);
93
- onMoving(movedCoordinates);
116
+ setDidAnnoActuallyMove(true)
117
+ onMoving(movedCoordinates)
94
118
  }
95
119
  }
96
120
 
97
121
  if (annotationMode === AnnotationMode.CREATE) {
98
- const mousePointInStage = mouse2.getAntiScaledMouseStagePosition(
122
+ const mousePointInStage = mouse.getAntiScaledMouseStagePosition(
99
123
  e,
100
124
  pageToStageOffset,
101
125
  svgScale,
102
- );
126
+ svgTranslation,
127
+ )
103
128
 
104
- let newCoords: Point[] = [...coordinates];
129
+ let newCoords: Point[] = [...coordinates]
105
130
 
106
131
  // last coordinate = mouse position - update it
107
- if (coordinates.length > 1) newCoords = coordinates.slice(0, -1);
132
+ if (coordinates.length > 1) newCoords = coordinates.slice(0, -1)
108
133
 
109
- newCoords.push(mousePointInStage);
134
+ newCoords.push(mousePointInStage)
110
135
 
111
- onMoving(newCoords);
136
+ onMoving(newCoords)
112
137
  }
113
- };
138
+ }
114
139
 
115
140
  useEffect(() => {
116
- onIsDraggingStateChanged(isAnnoDragging);
117
- if (!isAnnoDragging) return;
141
+ onIsDraggingStateChanged(isAnnoDragging)
142
+ if (!isAnnoDragging) return
118
143
 
119
144
  const handleMouseUp = () => {
120
- setIsAnnoDragging(false);
145
+ setIsAnnoDragging(false)
121
146
 
122
- if (didAnnoActuallyMoveRef.current) onMoved();
123
- setDidAnnoActuallyMove(false);
124
- };
147
+ if (didAnnoActuallyMoveRef.current) onMoved()
148
+ setDidAnnoActuallyMove(false)
149
+ }
125
150
 
126
- window.addEventListener("mouseup", handleMouseUp);
151
+ globalThis.addEventListener('mouseup', handleMouseUp)
127
152
 
128
153
  return () => {
129
- window.removeEventListener("mouseup", handleMouseUp);
130
- };
131
- }, [isAnnoDragging]);
154
+ globalThis.removeEventListener('mouseup', handleMouseUp)
155
+ }
156
+ }, [isAnnoDragging])
132
157
 
133
158
  const renderNodes = () => {
134
159
  const svgNodes = coordinates.map((coordinate: Point, index: number) => (
@@ -139,31 +164,38 @@ const Polygon = ({
139
164
  coordinates={coordinate}
140
165
  pageToStageOffset={pageToStageOffset}
141
166
  svgScale={svgScale}
167
+ svgTranslation={svgTranslation}
142
168
  style={style}
143
169
  onDeleteNode={() => {
144
- const newCoordinates = [...coordinates];
145
- newCoordinates.splice(index, 1);
146
- onDeleteNode(newCoordinates);
170
+ // 4 is the lowest node count where we can delete one
171
+ if (coordinates.length < 4)
172
+ return onNotification({
173
+ message: 'Polygons must have at least 3 nodes',
174
+ title: 'Polygon Error',
175
+ type: NotificationType.ERROR,
176
+ })
177
+
178
+ const newCoordinates = [...coordinates]
179
+ newCoordinates.splice(index, 1)
180
+ onDeleteNode(newCoordinates)
147
181
  }}
148
182
  onMoving={(index, newPoint) => {
149
- const newCoordinates = [...coordinates];
150
- newCoordinates[index] = newPoint;
151
- onMoving(newCoordinates);
183
+ const newCoordinates = [...coordinates]
184
+ newCoordinates[index] = newPoint
185
+ onMoving(newCoordinates)
152
186
  }}
153
187
  onMoved={() => onMoved()}
154
188
  onIsDraggingStateChanged={onIsDraggingStateChanged}
155
189
  />
156
- ));
190
+ ))
157
191
 
158
- return svgNodes;
159
- };
192
+ return svgNodes
193
+ }
160
194
 
161
195
  const renderEdges = () => {
162
196
  const svgEdges = coordinates.map((coordinate: Point, index: number) => {
163
197
  const endCoordinates: Point =
164
- index + 1 < coordinates.length
165
- ? coordinates[index + 1]
166
- : coordinates[0];
198
+ index + 1 < coordinates.length ? coordinates[index + 1] : coordinates[0]
167
199
 
168
200
  return (
169
201
  <Edge
@@ -173,61 +205,60 @@ const Polygon = ({
173
205
  isDisabled={isDisabled && isSelected}
174
206
  pageToStageOffset={pageToStageOffset}
175
207
  svgScale={svgScale}
208
+ svgTranslation={svgTranslation}
176
209
  style={style}
177
210
  onAddNode={(coordinate: Point) => {
178
- const newCoordinates = [...coordinates];
179
- newCoordinates.splice(index + 1, 0, coordinate);
211
+ const newCoordinates = [...coordinates]
212
+ newCoordinates.splice(index + 1, 0, coordinate)
180
213
 
181
- onAddNode(newCoordinates);
214
+ onAddNode(newCoordinates)
182
215
  }}
183
216
  onDoubleClick={() =>
184
- annotationMode === AnnotationMode.CREATE && onFinishAnnoCreate()
217
+ annotationMode === AnnotationMode.CREATE && handleFinishAnnoCreate()
185
218
  }
186
219
  onMouseDown={onMouseDown}
187
220
  onMouseMove={onMouseMove}
188
221
  />
189
- );
190
- });
191
- return svgEdges;
192
- };
222
+ )
223
+ })
224
+ return svgEdges
225
+ }
193
226
 
194
227
  const renderInfiniteSelectionArea = () => {
195
228
  return (
196
229
  <circle
197
230
  cx={coordinates[0].x}
198
231
  cy={coordinates[0].y}
199
- r={"100%"}
232
+ r={'100%'}
200
233
  style={{ opacity: 0 }}
201
234
  onMouseDown={onMouseDown}
202
235
  onMouseMove={onMouseMove}
203
236
  onContextMenu={(e) => e.preventDefault()}
204
237
  />
205
- );
206
- };
238
+ )
239
+ }
207
240
 
208
241
  // nodes need to be drawn after the polyline to make them clickable
209
242
  return (
210
243
  <g>
211
- {(isAnnoDragging || annotationMode === AnnotationMode.CREATE) &&
244
+ {(isAnnoDragging ||
245
+ annotationMode === AnnotationMode.CREATE ||
246
+ annotationMode === AnnotationMode.ADD) &&
212
247
  renderInfiniteSelectionArea()}
213
248
  <PolygonArea
214
- annotationSettings={annotationSettings}
215
249
  coordinates={coordinates}
216
250
  isSelected={isSelected}
217
251
  isDisabled={isDisabled}
218
252
  annotationMode={annotationMode}
219
- pageToStageOffset={pageToStageOffset}
220
253
  style={style}
221
- svgScale={svgScale}
222
- onFinishAnnoCreate={onFinishAnnoCreate}
223
- onIsDraggingStateChanged={onIsDraggingStateChanged}
254
+ onFinishAnnoCreate={handleFinishAnnoCreate}
224
255
  onMouseDown={onMouseDown}
225
256
  onMouseMove={onMouseMove}
226
257
  />
227
258
  {isSelected && annotationSettings.canEdit && renderEdges()}
228
259
  {isSelected && annotationMode !== AnnotationMode.CREATE && renderNodes()}
229
260
  </g>
230
- );
231
- };
261
+ )
262
+ }
232
263
 
233
- export default Polygon;
264
+ export default Polygon