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.
- package/README.md +4 -0
- package/dist/Annotation/logic/Annotation.d.ts +17 -0
- package/dist/Annotation/logic/Annotation.js +1 -1
- package/dist/Annotation/ui/AnnotationComponent.d.ts +24 -0
- package/dist/Annotation/ui/AnnotationComponent.js +1 -1
- package/dist/Annotation/ui/atoms/AnnoBar.d.ts +15 -0
- package/dist/Annotation/ui/atoms/AnnoBar.js +1 -1
- package/dist/Annotation/ui/atoms/DaviIcon.d.ts +9 -0
- package/dist/Annotation/ui/atoms/Edge.d.ts +17 -0
- package/dist/Annotation/ui/atoms/Edge.js +1 -1
- package/dist/Annotation/ui/atoms/Node.d.ts +17 -0
- package/dist/Annotation/ui/atoms/Node.js +1 -1
- package/dist/Annotation/ui/atoms/PolygonArea.d.ts +16 -0
- package/dist/Annotation/ui/atoms/PolygonArea.js +1 -1
- package/dist/Annotation/ui/tools/BBox.d.ts +21 -0
- package/dist/Annotation/ui/tools/BBox.js +1 -1
- package/dist/Annotation/ui/tools/Line.d.ts +21 -0
- package/dist/Annotation/ui/tools/Line.js +1 -1
- package/dist/Annotation/ui/tools/Point.d.ts +16 -0
- package/dist/Annotation/ui/tools/Point.js +1 -1
- package/dist/Annotation/ui/tools/Polygon.d.ts +23 -0
- package/dist/Annotation/ui/tools/Polygon.js +1 -1
- package/dist/Canvas/Canvas.d.ts +31 -0
- package/dist/Canvas/Canvas.js +1 -1
- package/dist/Canvas/LabelInput.d.ts +11 -0
- package/dist/Canvas/LabelInput.js +1 -1
- package/dist/IconButton.d.ts +25 -0
- package/dist/IconButton.js +1 -0
- package/dist/Sia.d.ts +33 -0
- package/dist/Sia.js +1 -1
- package/dist/Toolbar/Toolbar.d.ts +21 -0
- package/dist/Toolbar/Toolbar.js +1 -1
- package/dist/Toolbar/ToolbarItems/AccessibilityTools.d.ts +7 -0
- package/dist/Toolbar/ToolbarItems/AccessibilityTools.js +1 -1
- package/dist/Toolbar/ToolbarItems/AnnoToolSelector.d.ts +11 -0
- package/dist/Toolbar/ToolbarItems/AnnoToolSelector.js +1 -1
- package/dist/Toolbar/ToolbarItems/ImageToolItems/ImageLabelInput.d.ts +11 -0
- package/dist/Toolbar/ToolbarItems/ImageToolItems/ImageLabelInput.js +1 -0
- package/dist/Toolbar/ToolbarItems/ImageToolItems/TagLabel.d.ts +11 -0
- package/dist/Toolbar/ToolbarItems/ImageToolItems/TagLabel.js +1 -1
- package/dist/Toolbar/ToolbarItems/ImageTools.d.ts +13 -0
- package/dist/Toolbar/ToolbarItems/ImageTools.js +1 -1
- package/dist/Toolbar/ToolbarItems/Instructions.d.ts +2 -0
- package/dist/Toolbar/ToolbarItems/InstructionsModal.d.ts +6 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +1 -1
- package/dist/models/AnnotationMode.d.ts +11 -0
- package/dist/models/AnnotationStatus.d.ts +8 -0
- package/dist/models/AnnotationTool.d.ts +7 -0
- package/dist/models/CanvasAction.d.ts +28 -0
- package/dist/models/Direction.d.ts +7 -0
- package/dist/models/EditorModes.d.ts +11 -0
- package/dist/models/KeyAction.d.ts +22 -0
- package/dist/models/KeyAction.js +1 -1
- package/dist/models/NotificationType.d.ts +7 -0
- package/dist/models/NotificationType.js +1 -0
- package/dist/models/index.d.ts +6 -0
- package/dist/models/index.js +1 -1
- package/dist/stories/AnnotationTools.stories.d.ts +40 -0
- package/dist/stories/Canvas/Canvas.stories.d.ts +50 -0
- package/dist/stories/Canvas/CanvasOffset.d.ts +13 -0
- package/dist/stories/Canvas/CanvasWithOffset.stories.d.ts +36 -0
- package/dist/stories/FilterDropdown.stories.d.ts +19 -0
- package/dist/stories/MinimalSia.stories.d.ts +66 -0
- package/dist/stories/SIA/DemoWrapper.d.ts +8 -0
- package/dist/stories/SIA/DemoWrapper.stories.d.ts +27 -0
- package/dist/stories/SIA/SIA.stories.d.ts +72 -0
- package/dist/stories/Toolbar/ImageTools/TagLabel.stories.d.ts +21 -0
- package/dist/stories/Toolbar/Instructions.stories.d.ts +11 -0
- package/dist/stories/Toolbar/Toolbar.stories.d.ts +37 -0
- package/dist/stories/exampleData/exampleAnnotations.d.ts +8 -0
- package/dist/stories/exampleData/exampleExternalAnnotations.d.ts +8 -0
- package/dist/stories/exampleData/exampleImage.d.ts +2 -0
- package/dist/stories/exampleData/exampleLabels.d.ts +6 -0
- package/dist/types.d.ts +57 -0
- package/dist/utils/KeyMapper.d.ts +9 -0
- package/dist/utils/KeyMapper.js +1 -1
- package/dist/utils/TimeUtils.d.ts +4 -0
- package/dist/utils/TimeUtils.js +1 -0
- package/dist/utils/color.d.ts +2 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +1 -1
- package/dist/utils/mouse.d.ts +6 -0
- package/dist/utils/mouse.js +1 -1
- package/dist/utils/siaIcons.js +5 -5
- package/dist/utils/transform.d.ts +28 -0
- package/dist/utils/transform.js +1 -1
- package/dist/utils/windowViewport.d.ts +22 -0
- package/dist/utils/windowViewport.js +1 -1
- package/package.json +19 -16
- package/src/AnnoExampleViewer.jsx +18 -18
- package/src/Annotation/logic/Annotation.ts +24 -26
- package/src/Annotation/ui/AnnotationComponent.tsx +115 -86
- package/src/Annotation/ui/atoms/AnnoBar.tsx +51 -53
- package/src/Annotation/ui/atoms/DaviIcon.tsx +12 -22
- package/src/Annotation/ui/atoms/Edge.tsx +25 -22
- package/src/Annotation/ui/atoms/Node.tsx +56 -50
- package/src/Annotation/ui/atoms/PolygonArea.tsx +30 -35
- package/src/Annotation/ui/tools/BBox.tsx +136 -150
- package/src/Annotation/ui/tools/Line.tsx +94 -91
- package/src/Annotation/ui/tools/Point.tsx +19 -17
- package/src/Annotation/ui/tools/Polygon.tsx +126 -95
- package/src/Canvas/Canvas.tsx +748 -594
- package/src/Canvas/LabelInput.tsx +68 -45
- package/src/IconButton.tsx +119 -0
- package/src/InfoBoxes/AnnoDetails.jsx +53 -53
- package/src/InfoBoxes/AnnoStats.jsx +41 -41
- package/src/InfoBoxes/InfoBox.jsx +16 -16
- package/src/InfoBoxes/InfoBoxArea.jsx +32 -34
- package/src/InfoBoxes/LabelInfo.jsx +30 -30
- package/src/SIASettingButton.jsx +25 -25
- package/src/Sia.tsx +484 -0
- package/src/Toolbar/Toolbar.tsx +38 -31
- package/src/Toolbar/ToolbarItems/AccessibilityTools.tsx +26 -46
- package/src/Toolbar/ToolbarItems/AnnoToolSelector.tsx +53 -46
- package/src/Toolbar/ToolbarItems/ImageToolItems/ImageLabelInput.tsx +127 -0
- package/src/Toolbar/ToolbarItems/ImageToolItems/TagLabel.tsx +29 -28
- package/src/Toolbar/ToolbarItems/ImageTools.tsx +43 -40
- package/src/Toolbar/ToolbarItems/Instructions.tsx +47 -50
- package/src/Toolbar/ToolbarItems/InstructionsModal.tsx +8 -8
- package/src/index.ts +9 -13
- package/src/models/{AnnotationMode.tsx → AnnotationMode.ts} +1 -1
- package/src/models/{AnnotationStatus.tsx → AnnotationStatus.ts} +1 -1
- package/src/models/{AnnotationTool.tsx → AnnotationTool.ts} +1 -1
- package/src/models/{CanvasAction.tsx → CanvasAction.ts} +1 -1
- package/src/models/{Direction.tsx → Direction.ts} +1 -1
- package/src/models/{EditorModes.tsx → EditorModes.ts} +1 -1
- package/src/models/{KeyAction.tsx → KeyAction.ts} +3 -1
- package/src/models/NotificationType.ts +8 -0
- package/src/models/index.ts +6 -7
- package/src/siaDummyData.js +71 -71
- package/src/stories/AnnotationTools.mdx +27 -0
- package/src/stories/AnnotationTools.stories.tsx +104 -0
- package/src/stories/Canvas/Canvas.stories.tsx +59 -113
- package/src/stories/Canvas/CanvasOffset.tsx +54 -38
- package/src/stories/Canvas/CanvasWithOffset.stories.tsx +42 -113
- package/src/stories/FilterDropdown.stories.ts +13 -11
- package/src/stories/MinimalSIA.mdx +20 -0
- package/src/stories/MinimalSia.stories.tsx +90 -0
- package/src/stories/SIA/DemoWrapper.stories.tsx +71 -0
- package/src/stories/SIA/DemoWrapper.tsx +55 -0
- package/src/stories/SIA/SIA.stories.tsx +79 -45
- package/src/stories/Toolbar/ImageTools/TagLabel.stories.tsx +11 -12
- package/src/stories/Toolbar/Instructions.stories.tsx +11 -11
- package/src/stories/Toolbar/Toolbar.stories.tsx +32 -47
- package/src/stories/Welcome.mdx +5 -0
- package/src/stories/development/CoordinateSystems.mdx +25 -0
- package/src/stories/exampleData/exampleAnnotations.ts +65 -0
- package/src/stories/exampleData/exampleExternalAnnotations.ts +115 -0
- package/src/stories/{siaDummyData2.ts → exampleData/exampleImage.ts} +3 -264
- package/src/stories/exampleData/exampleLabels.ts +146 -0
- package/src/stories/main.scss +6 -0
- package/src/styles/style.scss +1 -26
- package/src/types.ts +67 -0
- package/src/utils/KeyMapper.ts +76 -74
- package/src/utils/TimeUtils.ts +11 -0
- package/src/utils/color.ts +25 -25
- package/src/utils/hist.js +22 -22
- package/src/utils/index.ts +2 -3
- package/src/utils/mouse.ts +45 -0
- package/src/utils/siaIcons.jsx +5 -7
- package/src/utils/transform.ts +186 -0
- package/src/utils/uiConfig.js +19 -22
- package/src/utils/windowViewport.ts +34 -0
- package/dist/AnnoExampleViewer.cjs +0 -1
- package/dist/AnnoExampleViewer.js +0 -1
- package/dist/AnnoLabelInput.cjs +0 -1
- package/dist/AnnoLabelInput.js +0 -1
- package/dist/AnnoToolBar.cjs +0 -19
- package/dist/AnnoToolBar.js +0 -19
- package/dist/Annotation/AnnoBar.cjs +0 -1
- package/dist/Annotation/AnnoBar.js +0 -1
- package/dist/Annotation/Annotation.cjs +0 -1
- package/dist/Annotation/Annotation.js +0 -1
- package/dist/Annotation/BBox.cjs +0 -1
- package/dist/Annotation/BBox.js +0 -1
- package/dist/Annotation/Edge.cjs +0 -1
- package/dist/Annotation/Edge.js +0 -1
- package/dist/Annotation/InfSelectionArea.cjs +0 -1
- package/dist/Annotation/InfSelectionArea.js +0 -1
- package/dist/Annotation/Line.cjs +0 -1
- package/dist/Annotation/Line.js +0 -1
- package/dist/Annotation/Node.cjs +0 -1
- package/dist/Annotation/Node.js +0 -1
- package/dist/Annotation/Point.cjs +0 -1
- package/dist/Annotation/Point.js +0 -1
- package/dist/Annotation/Polygon.cjs +0 -1
- package/dist/Annotation/Polygon.js +0 -1
- package/dist/Annotation/logic/Annotation.cjs +0 -1
- package/dist/Annotation/logic/AnnotationUtils.cjs +0 -1
- package/dist/Annotation/logic/AnnotationUtils.js +0 -1
- package/dist/Annotation/ui/AnnotationComponent.cjs +0 -1
- package/dist/Annotation/ui/atoms/AnnoBar.cjs +0 -1
- package/dist/Annotation/ui/atoms/DaviIcon.cjs +0 -19
- package/dist/Annotation/ui/atoms/Edge.cjs +0 -1
- package/dist/Annotation/ui/atoms/Node.cjs +0 -1
- package/dist/Annotation/ui/atoms/PolygonArea.cjs +0 -1
- package/dist/Annotation/ui/tools/BBox.cjs +0 -1
- package/dist/Annotation/ui/tools/Line.cjs +0 -1
- package/dist/Annotation/ui/tools/Point.cjs +0 -1
- package/dist/Annotation/ui/tools/Polygon.cjs +0 -1
- package/dist/Canvas/Canvas.cjs +0 -1
- package/dist/Canvas/LabelInput.cjs +0 -1
- package/dist/Canvas.cjs +0 -1
- package/dist/Canvas.js +0 -1
- package/dist/ImgBar.cjs +0 -1
- package/dist/ImgBar.js +0 -1
- package/dist/InfoBoxes/AnnoDetails.cjs +0 -1
- package/dist/InfoBoxes/AnnoDetails.js +0 -1
- package/dist/InfoBoxes/AnnoStats.cjs +0 -1
- package/dist/InfoBoxes/AnnoStats.js +0 -1
- package/dist/InfoBoxes/InfoBox.cjs +0 -1
- package/dist/InfoBoxes/InfoBox.js +0 -1
- package/dist/InfoBoxes/InfoBoxArea.cjs +0 -1
- package/dist/InfoBoxes/InfoBoxArea.js +0 -1
- package/dist/InfoBoxes/LabelInfo.cjs +0 -1
- package/dist/InfoBoxes/LabelInfo.js +0 -1
- package/dist/LabelInput.cjs +0 -1
- package/dist/LabelInput.js +0 -1
- package/dist/Prompt.cjs +0 -1
- package/dist/Prompt.js +0 -1
- package/dist/SIAFilterButton.cjs +0 -1
- package/dist/SIAFilterButton.js +0 -1
- package/dist/SIASettingButton.cjs +0 -1
- package/dist/SIASettingButton.js +0 -1
- package/dist/Sia.cjs +0 -1
- package/dist/Sia2.cjs +0 -1
- package/dist/Sia2.js +0 -1
- package/dist/SiaPopup.cjs +0 -1
- package/dist/SiaPopup.js +0 -1
- package/dist/ToolBar.cjs +0 -1
- package/dist/ToolBar.js +0 -1
- package/dist/Toolbar/NavigationButtons.cjs +0 -1
- package/dist/Toolbar/NavigationButtons.js +0 -1
- package/dist/Toolbar/Toolbar.cjs +0 -1
- package/dist/Toolbar/ToolbarItems/AccessibilityTools.cjs +0 -1
- package/dist/Toolbar/ToolbarItems/AnnoToolSelector.cjs +0 -1
- package/dist/Toolbar/ToolbarItems/ImageToolItems/ImageLabel.cjs +0 -1
- package/dist/Toolbar/ToolbarItems/ImageToolItems/ImageLabel.js +0 -1
- package/dist/Toolbar/ToolbarItems/ImageToolItems/TagLabel.cjs +0 -1
- package/dist/Toolbar/ToolbarItems/ImageTools.cjs +0 -1
- package/dist/Toolbar/ToolbarItems/Instructions.cjs +0 -1
- package/dist/Toolbar/ToolbarItems/InstructionsModal.cjs +0 -1
- package/dist/ToolbarItem.cjs +0 -1
- package/dist/ToolbarItem.js +0 -1
- package/dist/_virtual/_commonjsHelpers.cjs +0 -1
- package/dist/_virtual/_commonjsHelpers.js +0 -1
- package/dist/_virtual/lodash.cjs +0 -1
- package/dist/_virtual/lodash.js +0 -1
- package/dist/assets/Annotation/Annotation-Cd5Ua5TG.css +0 -1
- package/dist/assets/Toolbar-Cp1xyYeH.css +0 -1
- package/dist/filterTools.cjs +0 -1
- package/dist/filterTools.js +0 -1
- package/dist/index.cjs +0 -1
- package/dist/models/AllowedTools.cjs +0 -1
- package/dist/models/AllowedTools.js +0 -1
- package/dist/models/AnnotationMode.cjs +0 -1
- package/dist/models/AnnotationSettings.cjs +0 -1
- package/dist/models/AnnotationSettings.js +0 -1
- package/dist/models/AnnotationStatus.cjs +0 -1
- package/dist/models/AnnotationTool.cjs +0 -1
- package/dist/models/CanvasAction.cjs +0 -1
- package/dist/models/Direction.cjs +0 -1
- package/dist/models/EditorModes.cjs +0 -1
- package/dist/models/ExternalAnnotation.cjs +0 -1
- package/dist/models/ExternalAnnotation.js +0 -1
- package/dist/models/KeyAction.cjs +0 -1
- package/dist/models/Label.cjs +0 -1
- package/dist/models/Label.js +0 -1
- package/dist/models/UiConfig.cjs +0 -1
- package/dist/models/UiConfig.js +0 -1
- package/dist/models/index.cjs +0 -1
- package/dist/siaDummyData.cjs +0 -7
- package/dist/siaDummyData.js +0 -7
- package/dist/stories/Canvas/CanvasOffset.cjs +0 -1
- package/dist/stories/Canvas/CanvasOffset.js +0 -1
- package/dist/stories/FilterDropdown.stories.cjs +0 -1
- package/dist/stories/FilterDropdown.stories.js +0 -1
- package/dist/stories/SIA2/DemoWrapper.cjs +0 -1
- package/dist/stories/SIA2/DemoWrapper.js +0 -1
- package/dist/stories/siaDummyData.cjs +0 -1
- package/dist/stories/siaDummyData.js +0 -1
- package/dist/stories/siaDummyData2.cjs +0 -7
- package/dist/stories/siaDummyData2.js +0 -7
- package/dist/types/annoStatus.cjs +0 -1
- package/dist/types/annoStatus.js +0 -1
- package/dist/types/canvasActions.cjs +0 -1
- package/dist/types/canvasActions.js +0 -1
- package/dist/types/cursorstyles.cjs +0 -1
- package/dist/types/cursorstyles.js +0 -1
- package/dist/types/modes.cjs +0 -1
- package/dist/types/modes.js +0 -1
- package/dist/types/notificationType.cjs +0 -1
- package/dist/types/notificationType.js +0 -1
- package/dist/types/toolbarEvents.cjs +0 -1
- package/dist/types/toolbarEvents.js +0 -1
- package/dist/types/tools.cjs +0 -1
- package/dist/types/tools.js +0 -1
- package/dist/types.cjs +0 -1
- package/dist/utils/KeyMapper.cjs +0 -1
- package/dist/utils/annoConversion.cjs +0 -1
- package/dist/utils/annoConversion.js +0 -1
- package/dist/utils/annoConversion2.cjs +0 -1
- package/dist/utils/annoConversion2.js +0 -1
- package/dist/utils/color.cjs +0 -1
- package/dist/utils/colorlut.cjs +0 -1
- package/dist/utils/colorlut.js +0 -1
- package/dist/utils/constraints.cjs +0 -1
- package/dist/utils/constraints.js +0 -1
- package/dist/utils/hist.cjs +0 -1
- package/dist/utils/hist.js +0 -1
- package/dist/utils/index.cjs +0 -1
- package/dist/utils/keyActions.cjs +0 -1
- package/dist/utils/keyActions.js +0 -1
- package/dist/utils/mouse.cjs +0 -1
- package/dist/utils/mouse2.cjs +0 -1
- package/dist/utils/mouse2.js +0 -1
- package/dist/utils/siaIcons.cjs +0 -12
- package/dist/utils/transform.cjs +0 -1
- package/dist/utils/transform2.cjs +0 -1
- package/dist/utils/transform2.js +0 -1
- package/dist/utils/uiConfig.cjs +0 -1
- package/dist/utils/windowViewport.cjs +0 -1
- package/dist/utils/windowViewport2.cjs +0 -1
- package/dist/utils/windowViewport2.js +0 -1
- package/src/AnnoLabelInput.jsx +0 -109
- package/src/AnnoToolBar.jsx +0 -153
- package/src/Annotation/AnnoBar.jsx +0 -154
- package/src/Annotation/Annotation.jsx +0 -395
- package/src/Annotation/Annotation.scss +0 -47
- package/src/Annotation/BBox.jsx +0 -299
- package/src/Annotation/Edge.jsx +0 -92
- package/src/Annotation/InfSelectionArea.jsx +0 -72
- package/src/Annotation/Line.jsx +0 -68
- package/src/Annotation/Node.jsx +0 -282
- package/src/Annotation/Point.jsx +0 -200
- package/src/Annotation/Polygon.jsx +0 -404
- package/src/Annotation/logic/AnnotationUtils.ts +0 -30
- package/src/Canvas.jsx +0 -2194
- package/src/ImgBar.jsx +0 -131
- package/src/LabelInput.jsx +0 -238
- package/src/Prompt.jsx +0 -45
- package/src/SIAFilterButton.jsx +0 -186
- package/src/Sia.jsx +0 -478
- package/src/Sia2.tsx +0 -392
- package/src/SiaPopup.jsx +0 -15
- package/src/ToolBar.jsx +0 -463
- package/src/Toolbar/NavigationButtons.tsx +0 -21
- package/src/Toolbar/ToolbarItem.jsx +0 -30
- package/src/Toolbar/ToolbarItems/ImageToolItems/ImageLabel.tsx +0 -62
- package/src/Toolbar.css +0 -13
- package/src/ToolbarItem.jsx +0 -31
- package/src/filterTools.js +0 -5
- package/src/models/AllowedTools.tsx +0 -9
- package/src/models/AnnotationSettings.tsx +0 -9
- package/src/models/ExternalAnnotation.ts +0 -15
- package/src/models/Label.tsx +0 -8
- package/src/models/UiConfig.tsx +0 -6
- package/src/stories/Button.jsx +0 -54
- package/src/stories/Button.stories.js +0 -48
- package/src/stories/Header.jsx +0 -69
- package/src/stories/Header.stories.js +0 -28
- package/src/stories/Page.jsx +0 -87
- package/src/stories/Page.stories.js +0 -28
- package/src/stories/SIA2/DemoWrapper.stories.tsx +0 -167
- package/src/stories/SIA2/DemoWrapper.tsx +0 -54
- package/src/stories/SIA2/Sia2.stories.tsx +0 -62
- package/src/stories/Toolbar/ImageTools/ImageLabel.stories.tsx +0 -32
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +0 -5
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/avif-test-image.avif +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +0 -15
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +0 -3
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +0 -12
- package/src/stories/assets/youtube.svg +0 -4
- package/src/stories/button.css +0 -30
- package/src/stories/header.css +0 -32
- package/src/stories/lost.js +0 -54
- package/src/stories/page.css +0 -69
- package/src/stories/siaDummyData.js +0 -263
- package/src/stories/store.js +0 -18
- package/src/test.js +0 -7
- package/src/types/annoStatus.js +0 -4
- package/src/types/canvasActions.js +0 -58
- package/src/types/cursorstyles.js +0 -3
- package/src/types/modes.js +0 -9
- package/src/types/notificationType.js +0 -11
- package/src/types/toolbarEvents.js +0 -35
- package/src/types/tools.js +0 -17
- package/src/types.tsx +0 -11
- package/src/utils/annoConversion.js +0 -145
- package/src/utils/annoConversion2.ts +0 -145
- package/src/utils/colorlut.js +0 -68
- package/src/utils/constraints.js +0 -81
- package/src/utils/index.js +0 -1
- package/src/utils/keyActions.js +0 -113
- package/src/utils/mouse.js +0 -14
- package/src/utils/mouse2.ts +0 -35
- package/src/utils/transform.js +0 -336
- package/src/utils/transform2.ts +0 -343
- package/src/utils/windowViewport.js +0 -34
- package/src/utils/windowViewport2.ts +0 -50
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import { CSSProperties, useEffect, useRef, useState } from
|
|
1
|
+
import { CSSProperties, MouseEvent, useEffect, useRef, useState } from 'react'
|
|
2
2
|
|
|
3
3
|
// rename type to avoid naming conflict
|
|
4
|
-
import { Point } from
|
|
5
|
-
import Node from
|
|
6
|
-
import PolygonArea from
|
|
7
|
-
import AnnotationMode from
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
style: CSSProperties
|
|
22
|
-
onAddNode: (coordinates: Point[]) => void
|
|
23
|
-
onDeleteNode: (coordinates: Point[]) => void
|
|
24
|
-
onFinishAnnoCreate: () => void
|
|
25
|
-
onIsDraggingStateChanged: (
|
|
26
|
-
onMoving: (coordinates: Point[]) => void
|
|
27
|
-
onMoved: () => void
|
|
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
|
-
|
|
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
|
-
|
|
52
|
-
|
|
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 (
|
|
82
|
+
if (
|
|
83
|
+
e.button === 2 &&
|
|
84
|
+
[AnnotationMode.CREATE, AnnotationMode.ADD].includes(annotationMode)
|
|
85
|
+
) {
|
|
69
86
|
const antiScaledMousePositionInStageCoordinates =
|
|
70
|
-
|
|
87
|
+
mouse.getAntiScaledMouseStagePosition(
|
|
88
|
+
e,
|
|
89
|
+
pageToStageOffset,
|
|
90
|
+
svgScale,
|
|
91
|
+
svgTranslation,
|
|
92
|
+
)
|
|
71
93
|
|
|
72
|
-
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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 =
|
|
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
|
-
|
|
151
|
+
globalThis.addEventListener('mouseup', handleMouseUp)
|
|
127
152
|
|
|
128
153
|
return () => {
|
|
129
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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 &&
|
|
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={
|
|
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 ||
|
|
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
|
-
|
|
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
|