@labelbee/lb-components 1.6.0-alpha.0 → 1.6.0-alpha.10
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/dist/App.js +1 -1
- package/dist/assets/annotation/lineTool/icon_line.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/changePointCloudValid.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/copy.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/nextBox.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/nodata.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/patse.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/prevBox.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/rotate180_black.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/selectAll.svg.js +1 -0
- package/dist/assets/annotation/pointCloudTool/selectMultiple.svg.js +1 -0
- package/dist/assets/annotation/pointTool/icon_point.svg.js +1 -0
- package/dist/assets/annotation/polygonTool/icon_polygon.svg.js +1 -0
- package/dist/assets/annotation/rectTool/icon_rect.svg.js +1 -0
- package/dist/assets/annotation/rectTool/{icon_rectPattern.svg.js → icon_rect_a.svg.js} +0 -0
- package/dist/assets/attributeIcon/eraser.svg.js +1 -0
- package/dist/assets/attributeIcon/eraser_a.svg.js +1 -0
- package/dist/assets/attributeIcon/pen.svg.js +1 -0
- package/dist/assets/attributeIcon/pen_a.svg.js +1 -0
- package/dist/assets/{cssIcon/annotation/icon_clearSmall.svg → icons/25541b4d.svg} +0 -0
- package/dist/assets/icons/25ef334b.svg +8 -0
- package/dist/assets/icons/7eadb9c4.svg +5 -0
- package/dist/assets/icons/9d70807.svg +5 -0
- package/dist/assets/icons/c5b4262e.png +0 -0
- package/dist/assets/{cssIcon/slide_btn.svg → icons/cc550fff.svg} +0 -0
- package/dist/assets/{cssIcon/annotation/icon_clearSmall_a.svg → icons/dc9b6bfc.svg} +0 -0
- package/dist/assets/icons/e4f0b7fe.png +0 -0
- package/dist/components/AnnotationView/index.js +1 -1
- package/dist/components/AnnotationView/pointCloudAnnotationView.js +1 -0
- package/dist/components/attributeList/index.js +1 -1
- package/dist/components/customResizeHook/index.js +1 -1
- package/dist/components/pointCloudView/PointCloud2DView.js +1 -0
- package/dist/components/pointCloudView/PointCloud3DView.js +1 -0
- package/dist/components/pointCloudView/PointCloudBackView.js +1 -0
- package/dist/components/pointCloudView/PointCloudContext.js +1 -0
- package/dist/components/pointCloudView/PointCloudInfos.js +1 -0
- package/dist/components/pointCloudView/PointCloudLayout.js +1 -0
- package/dist/components/pointCloudView/PointCloudListener.js +1 -0
- package/dist/components/pointCloudView/PointCloudSideView.js +1 -0
- package/dist/components/pointCloudView/PointCloudTopView.js +1 -0
- package/dist/components/pointCloudView/components/EmptyPage/index.js +1 -0
- package/dist/components/pointCloudView/hooks/useBoxes.js +1 -0
- package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -0
- package/dist/components/pointCloudView/hooks/usePolygon.js +1 -0
- package/dist/components/pointCloudView/hooks/useRotate.js +1 -0
- package/dist/components/pointCloudView/hooks/useSingleBox.js +1 -0
- package/dist/components/pointCloudView/hooks/useStatus.js +1 -0
- package/dist/components/pointCloudView/hooks/useZoom.js +1 -0
- package/dist/components/pointCloudView/index.js +1 -0
- package/dist/components/videoAnnotate/index.js +1 -1
- package/dist/data/enums/ToolType.js +1 -1
- package/dist/hooks/annotation.js +1 -0
- package/dist/hooks/useSize.js +1 -1
- package/dist/index.css +314 -44
- package/dist/index.js +1 -1
- package/dist/store/Actions.js +1 -1
- package/dist/store/annotation/actionCreators.js +1 -1
- package/dist/store/annotation/map.js +1 -0
- package/dist/store/annotation/reducer.js +1 -1
- package/dist/store/ctx.js +1 -0
- package/dist/types/App.d.ts +10 -2
- package/dist/types/components/AnnotationView/index.d.ts +6 -5
- package/dist/types/components/AnnotationView/pointCloudAnnotationView.d.ts +10 -0
- package/dist/types/components/attributeList/index.d.ts +1 -0
- package/dist/types/components/pointCloudView/PointCloud2DView.d.ts +6 -0
- package/dist/types/components/pointCloudView/PointCloud3DView.d.ts +6 -0
- package/dist/types/components/pointCloudView/PointCloudBackView.d.ts +3 -0
- package/dist/types/components/pointCloudView/PointCloudContext.d.ts +33 -0
- package/dist/types/components/pointCloudView/PointCloudInfos.d.ts +19 -0
- package/dist/types/components/pointCloudView/PointCloudLayout.d.ts +7 -0
- package/dist/types/components/pointCloudView/PointCloudListener.d.ts +6 -0
- package/dist/types/components/pointCloudView/PointCloudSideView.d.ts +6 -0
- package/dist/types/components/pointCloudView/PointCloudTopView.d.ts +6 -0
- package/dist/types/components/pointCloudView/components/EmptyPage/index.d.ts +2 -0
- package/dist/types/components/pointCloudView/hooks/useBoxes.d.ts +10 -0
- package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +63 -0
- package/dist/types/components/pointCloudView/hooks/usePolygon.d.ts +9 -0
- package/dist/types/components/pointCloudView/hooks/useRotate.d.ts +8 -0
- package/dist/types/components/pointCloudView/hooks/useSingleBox.d.ts +13 -0
- package/dist/types/components/pointCloudView/hooks/useStatus.d.ts +11 -0
- package/dist/types/components/pointCloudView/hooks/useZoom.d.ts +7 -0
- package/dist/types/components/pointCloudView/index.d.ts +15 -0
- package/dist/types/components/videoPlayer/TagToolInstanceAdaptor.d.ts +1 -1
- package/dist/types/components/videoPlayer/index.d.ts +1 -1
- package/dist/types/data/enums/ToolType.d.ts +14 -8
- package/dist/types/hooks/annotation.d.ts +32 -0
- package/dist/types/hooks/useSize.d.ts +2 -2
- package/dist/types/index.d.ts +3 -1
- package/dist/types/store/Actions.d.ts +3 -0
- package/dist/types/store/annotation/actionCreators.d.ts +15 -5
- package/dist/types/store/annotation/map.d.ts +13 -0
- package/dist/types/store/annotation/reducer.d.ts +1 -1
- package/dist/types/store/annotation/types.d.ts +2 -0
- package/dist/types/store/ctx.d.ts +4 -0
- package/dist/types/utils/PageOperator.d.ts +1 -1
- package/dist/types/utils/StepUtils.d.ts +7 -0
- package/dist/types/utils/ToolUtils.d.ts +10 -0
- package/dist/types/utils/data.d.ts +1 -1
- package/dist/types/utils/dom.d.ts +1 -1
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/views/MainView/annotationOperation/index.d.ts +3 -0
- package/dist/types/views/MainView/sidebar/GeneralOperation/ActionsConfirm.d.ts +12 -0
- package/dist/types/views/MainView/sidebar/GeneralOperation/index.d.ts +5 -1
- package/dist/types/views/MainView/sidebar/GeneralOperation/useOperationList.d.ts +12 -0
- package/dist/types/views/MainView/sidebar/PointCloudToolSidebar/index.d.ts +11 -0
- package/dist/types/views/MainView/sidebar/ScribbleSidebar/index.d.ts +6 -0
- package/dist/types/views/MainView/sidebar/ToolIcons.d.ts +11 -0
- package/dist/types/views/MainView/sidebar/ToolStyle/index.d.ts +1 -1
- package/dist/types/views/MainView/sidebar/index.d.ts +1 -0
- package/dist/types/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.d.ts +3 -0
- package/dist/types/views/MainView/toolFooter/Pagination.d.ts +12 -2
- package/dist/types/views/MainView/toolFooter/ZoomController/ZoomLevel/index.d.ts +1 -0
- package/dist/types/views/MainView/toolFooter/ZoomController/index.d.ts +15 -4
- package/dist/types/views/MainView/toolFooter/index.d.ts +7 -9
- package/dist/types/views/MainView/toolHeader/ExportData/index.d.ts +1 -1
- package/dist/utils/StepUtils.js +1 -1
- package/dist/utils/ToolUtils.js +1 -0
- package/dist/utils/data.js +1 -1
- package/dist/utils/dom.js +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/views/MainView/annotationOperation/index.js +1 -1
- package/dist/views/MainView/annotationTips/index.js +1 -1
- package/dist/views/MainView/index.js +1 -1
- package/dist/views/MainView/sidebar/AnnotationText/index.js +1 -1
- package/dist/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -0
- package/dist/views/MainView/sidebar/GeneralOperation/index.js +1 -1
- package/dist/views/MainView/sidebar/GeneralOperation/useOperationList.js +1 -0
- package/dist/views/MainView/sidebar/ImgAttributeInfo/index.js +1 -1
- package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -0
- package/dist/views/MainView/sidebar/ScribbleSidebar/index.js +1 -0
- package/dist/views/MainView/sidebar/SwitchAttributeList/index.js +1 -1
- package/dist/views/MainView/sidebar/TagSidebar/index.js +1 -1
- package/dist/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
- package/dist/views/MainView/sidebar/ToolIcons.js +1 -0
- package/dist/views/MainView/sidebar/ToolStyle/index.js +1 -1
- package/dist/views/MainView/sidebar/index.js +1 -1
- package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
- package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -0
- package/dist/views/MainView/toolFooter/FooterTips/index.js +1 -1
- package/dist/views/MainView/toolFooter/HiddenTips/index.js +1 -1
- package/dist/views/MainView/toolFooter/PageNumber/index.js +1 -1
- package/dist/views/MainView/toolFooter/Pagination.js +1 -1
- package/dist/views/MainView/toolFooter/ZoomController/ZoomLevel/index.js +1 -1
- package/dist/views/MainView/toolFooter/ZoomController/index.js +1 -1
- package/dist/views/MainView/toolFooter/index.js +1 -1
- package/dist/views/MainView/toolHeader/ExportData/index.js +1 -1
- package/dist/views/MainView/toolHeader/StepSwitch/index.js +1 -1
- package/dist/views/MainView/toolHeader/headerOption/index.js +1 -1
- package/dist/views/MainView/toolHeader/index.js +1 -1
- package/es/App.js +1 -1
- package/es/App.js.map +1 -1
- package/es/assets/annotation/lineTool/icon_line.svg.js +1 -0
- package/es/assets/annotation/lineTool/icon_line.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/changePointCloudValid.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/changePointCloudValid.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/copy.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/copy.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/nextBox.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/nextBox.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/nodata.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/nodata.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/patse.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/patse.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/prevBox.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/prevBox.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/rotate180_black.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/rotate180_black.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/selectAll.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/selectAll.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/selectMultiple.svg.js +1 -0
- package/es/assets/annotation/pointCloudTool/selectMultiple.svg.js.map +1 -0
- package/es/assets/annotation/pointTool/icon_point.svg.js +1 -0
- package/es/assets/annotation/pointTool/icon_point.svg.js.map +1 -0
- package/es/assets/annotation/polygonTool/icon_polygon.svg.js +1 -0
- package/es/assets/annotation/polygonTool/icon_polygon.svg.js.map +1 -0
- package/es/assets/annotation/rectTool/icon_rect.svg.js +1 -0
- package/es/assets/annotation/rectTool/icon_rect.svg.js.map +1 -0
- package/es/assets/annotation/rectTool/icon_rectPattern.svg.js +4 -1
- package/es/assets/annotation/rectTool/icon_rect_a.svg.js +1 -0
- package/es/assets/annotation/rectTool/icon_rect_a.svg.js.map +1 -0
- package/es/assets/attributeIcon/eraser.svg.js +1 -0
- package/es/assets/attributeIcon/eraser.svg.js.map +1 -0
- package/es/assets/attributeIcon/eraser_a.svg.js +1 -0
- package/es/assets/attributeIcon/eraser_a.svg.js.map +1 -0
- package/es/assets/attributeIcon/pen.svg.js +1 -0
- package/es/assets/attributeIcon/pen.svg.js.map +1 -0
- package/es/assets/attributeIcon/pen_a.svg.js +1 -0
- package/es/assets/attributeIcon/pen_a.svg.js.map +1 -0
- package/es/components/AnnotationView/index.js +1 -1
- package/es/components/AnnotationView/index.js.map +1 -1
- package/es/components/AnnotationView/pointCloudAnnotationView.js +1 -0
- package/es/components/AnnotationView/pointCloudAnnotationView.js.map +1 -0
- package/es/components/attributeList/index.js +1 -1
- package/es/components/attributeList/index.js.map +1 -1
- package/es/components/customResizeHook/index.js +1 -1
- package/es/components/customResizeHook/index.js.map +1 -1
- package/es/components/pointCloudView/PointCloud2DView.js +1 -0
- package/es/components/pointCloudView/PointCloud2DView.js.map +1 -0
- package/es/components/pointCloudView/PointCloud3DView.js +1 -1
- package/es/components/pointCloudView/PointCloud3DView.js.map +1 -0
- package/es/components/pointCloudView/PointCloudBackView.js +1 -0
- package/es/components/pointCloudView/PointCloudBackView.js.map +1 -0
- package/es/components/pointCloudView/PointCloudContext.js +1 -0
- package/es/components/pointCloudView/PointCloudContext.js.map +1 -0
- package/es/components/pointCloudView/PointCloudInfos.js +1 -0
- package/es/components/pointCloudView/PointCloudInfos.js.map +1 -0
- package/es/components/pointCloudView/PointCloudLayout.js +1 -1
- package/es/components/pointCloudView/PointCloudLayout.js.map +1 -0
- package/es/components/pointCloudView/PointCloudListener.js +1 -0
- package/es/components/pointCloudView/PointCloudListener.js.map +1 -0
- package/es/components/pointCloudView/PointCloudSideView.js +1 -0
- package/es/components/pointCloudView/PointCloudSideView.js.map +1 -0
- package/es/components/pointCloudView/PointCloudTopView.js +1 -1
- package/es/components/pointCloudView/PointCloudTopView.js.map +1 -0
- package/es/components/pointCloudView/components/EmptyPage/index.js +1 -0
- package/es/components/pointCloudView/components/EmptyPage/index.js.map +1 -0
- package/es/components/pointCloudView/data.js +4 -0
- package/es/components/pointCloudView/data.js.map +1 -0
- package/es/components/pointCloudView/hooks/useBoxes.js +1 -0
- package/es/components/pointCloudView/hooks/useBoxes.js.map +1 -0
- package/es/components/pointCloudView/hooks/useConfig.js +19 -0
- package/es/components/pointCloudView/hooks/useConfig.js.map +1 -0
- package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -0
- package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -0
- package/es/components/pointCloudView/hooks/usePolygon.js +1 -0
- package/es/components/pointCloudView/hooks/usePolygon.js.map +1 -0
- package/es/components/pointCloudView/hooks/useRotate.js +1 -0
- package/es/components/pointCloudView/hooks/useRotate.js.map +1 -0
- package/es/components/pointCloudView/hooks/useSingleBox.js +1 -0
- package/es/components/pointCloudView/hooks/useSingleBox.js.map +1 -0
- package/es/components/pointCloudView/hooks/useStatus.js +1 -0
- package/es/components/pointCloudView/hooks/useStatus.js.map +1 -0
- package/es/components/pointCloudView/hooks/useZoom.js +1 -0
- package/es/components/pointCloudView/hooks/useZoom.js.map +1 -0
- package/es/components/pointCloudView/index.js +1 -1
- package/es/components/pointCloudView/index.js.map +1 -0
- package/es/components/videoAnnotate/index.js +1 -1
- package/es/components/videoAnnotate/index.js.map +1 -1
- package/es/data/enums/ToolType.js +1 -1
- package/es/data/enums/ToolType.js.map +1 -1
- package/es/hooks/annotation.js +1 -0
- package/es/hooks/annotation.js.map +1 -0
- package/es/hooks/useConfig.js +18 -0
- package/es/hooks/useConfig.js.map +1 -0
- package/es/hooks/useSize.js +1 -1
- package/es/hooks/useSize.js.map +1 -1
- package/es/index.css +1404 -0
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/store/Actions.js +1 -1
- package/es/store/Actions.js.map +1 -1
- package/es/store/annotation/actionCreators.js +1 -1
- package/es/store/annotation/actionCreators.js.map +1 -1
- package/es/store/annotation/map.js +1 -0
- package/es/store/annotation/map.js.map +1 -0
- package/es/store/annotation/reducer.js +1 -1
- package/es/store/annotation/reducer.js.map +1 -1
- package/es/store/ctx.js +1 -0
- package/es/store/ctx.js.map +1 -0
- package/es/utils/StepUtils.js +1 -1
- package/es/utils/StepUtils.js.map +1 -1
- package/es/utils/ToolUtils.js.map +1 -0
- package/es/utils/data.js +1 -1
- package/es/utils/data.js.map +1 -1
- package/es/utils/dom.js +1 -1
- package/es/utils/dom.js.map +1 -1
- package/es/utils/index.js +1 -1
- package/es/utils/index.js.map +1 -1
- package/es/views/MainView/annotationOperation/index.js +1 -1
- package/es/views/MainView/annotationOperation/index.js.map +1 -1
- package/es/views/MainView/annotationTips/index.js +1 -1
- package/es/views/MainView/annotationTips/index.js.map +1 -1
- package/es/views/MainView/index.js +1 -1
- package/es/views/MainView/index.js.map +1 -1
- package/es/views/MainView/sidebar/AnnotationText/index.js +1 -1
- package/es/views/MainView/sidebar/AnnotationText/index.js.map +1 -1
- package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -0
- package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js.map +1 -0
- package/es/views/MainView/sidebar/GeneralOperation/index.js +1 -1
- package/es/views/MainView/sidebar/GeneralOperation/index.js.map +1 -1
- package/es/views/MainView/sidebar/GeneralOperation/useOperationList.js +1 -0
- package/es/views/MainView/sidebar/GeneralOperation/useOperationList.js.map +1 -0
- package/es/views/MainView/sidebar/ImgAttributeInfo/index.js +1 -1
- package/es/views/MainView/sidebar/ImgAttributeInfo/index.js.map +1 -1
- package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -0
- package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -0
- package/es/views/MainView/sidebar/ScribbleSidebar/index.js +1 -0
- package/es/views/MainView/sidebar/ScribbleSidebar/index.js.map +1 -0
- package/es/views/MainView/sidebar/SwitchAttributeList/index.js +1 -1
- package/es/views/MainView/sidebar/SwitchAttributeList/index.js.map +1 -1
- package/es/views/MainView/sidebar/TagSidebar/index.js +1 -1
- package/es/views/MainView/sidebar/TagSidebar/index.js.map +1 -1
- package/es/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
- package/es/views/MainView/sidebar/TextToolSidebar/index.js.map +1 -1
- package/es/views/MainView/sidebar/ToolIcons.js +1 -0
- package/es/views/MainView/sidebar/ToolIcons.js.map +1 -0
- package/es/views/MainView/sidebar/ToolStyle/index.js +1 -1
- package/es/views/MainView/sidebar/ToolStyle/index.js.map +1 -1
- package/es/views/MainView/sidebar/index.js +1 -1
- package/es/views/MainView/sidebar/index.js.map +1 -1
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -1
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -0
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js.map +1 -0
- package/es/views/MainView/toolFooter/FooterTips/index.js +1 -1
- package/es/views/MainView/toolFooter/FooterTips/index.js.map +1 -1
- package/es/views/MainView/toolFooter/HiddenTips/index.js +1 -1
- package/es/views/MainView/toolFooter/HiddenTips/index.js.map +1 -1
- package/es/views/MainView/toolFooter/PageNumber/index.js +1 -1
- package/es/views/MainView/toolFooter/PageNumber/index.js.map +1 -1
- package/es/views/MainView/toolFooter/Pagination.js +1 -1
- package/es/views/MainView/toolFooter/Pagination.js.map +1 -1
- package/es/views/MainView/toolFooter/ZoomController/ZoomLevel/index.js +1 -1
- package/es/views/MainView/toolFooter/ZoomController/ZoomLevel/index.js.map +1 -1
- package/es/views/MainView/toolFooter/ZoomController/index.js +1 -1
- package/es/views/MainView/toolFooter/ZoomController/index.js.map +1 -1
- package/es/views/MainView/toolFooter/index.js +1 -1
- package/es/views/MainView/toolFooter/index.js.map +1 -1
- package/es/views/MainView/toolHeader/ExportData/index.js +1 -1
- package/es/views/MainView/toolHeader/ExportData/index.js.map +1 -1
- package/es/views/MainView/toolHeader/StepSwitch/index.js +1 -1
- package/es/views/MainView/toolHeader/StepSwitch/index.js.map +1 -1
- package/es/views/MainView/toolHeader/headerOption/index.js +1 -1
- package/es/views/MainView/toolHeader/headerOption/index.js.map +1 -1
- package/es/views/MainView/toolHeader/index.js +1 -1
- package/es/views/MainView/toolHeader/index.js.map +1 -1
- package/package.json +9 -8
- package/dist/index.css.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/TagSidebar/index.tsx"],"sourcesContent":["import RadioList from '@/components/attributeList';\nimport CheckBoxList from '@/components/checkboxList';\nimport { CaretRightOutlined } from '@ant-design/icons';\nimport { Badge, Collapse, Tooltip } from 'antd/es';\nimport { cloneDeep } from 'lodash';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport clearSmall from '@/assets/annotation/common/icon_clearSmall.svg';\nimport clearSmallA from '@/assets/annotation/common/icon_clearSmall_a.svg';\nimport { TagOperation, TagUtils } from '@labelbee/lb-annotation';\nimport { connect } from 'react-redux';\nimport { AppState } from '@/store';\nimport { IInputList } from '@/types/main';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n imgIndex: number;\n toolInstance: TagOperation;\n}\n\nconst { Panel } = Collapse;\n\nexport const expandIconFuc = ({ isActive }: any) => (\n <CaretRightOutlined rotate={isActive ? 90 : 0} />\n);\n\nconst TagSidebar: React.FC<IProps> = ({ toolInstance, imgIndex }) => {\n const [expandKeyList, setExpandKeyList] = useState<string[]>([]);\n\n const sidebarRef = useRef<HTMLDivElement>(null);\n const [, forceRender] = useState<number>(0);\n const [hoverDeleteIndex, setHoverDeleteIndex] = useState(-1);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n // 用于配置的初始化\n setExpandKeyList(toolInstance.config.inputList.map((v: IInputList) => v.value));\n\n // 进行实时渲染\n toolInstance.singleOn('render', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n useEffect(() => {\n if (toolInstance) {\n // 该写法会不断的重复绑定,后续写法上可以更改(如果将 singleOn 改为 on 会有很大问题)\n toolInstance.singleOn('expend', expendRender);\n\n if (toolInstance.labelSelectedList.length === 1) {\n let height = 0;\n for (let i = 0; i < toolInstance.labelSelectedList[0]; i++) {\n height += 46;\n inputList[i] &&\n expandKeyList[i] !== '' &&\n inputList[i].subSelected.forEach((i: any) => {\n height += 40;\n });\n }\n if (sidebarRef.current) {\n sidebarRef.current.children[0].scrollTop = height;\n }\n }\n }\n });\n\n useEffect(() => {\n // 翻页侧边栏跳到最上\n if (sidebarRef.current) {\n sidebarRef.current.children[0].scrollTop = 0;\n }\n }, [imgIndex]);\n\n const expendRender = () => {\n const index = toolInstance.labelSelectedList[0];\n const value = inputList.filter((v: IInputList, i: number) => i === index)[0]?.value;\n setExpendKeyList(index, value, true);\n };\n\n const setExpendKeyList = useCallback(\n (index: number, value: string, expend?: boolean) => {\n const newKeyList = cloneDeep(expandKeyList);\n if (newKeyList[index] === '' || expend === true) {\n newKeyList[index] = value;\n } else {\n newKeyList[index] = '';\n }\n setExpandKeyList(newKeyList);\n },\n [expandKeyList],\n );\n\n if (!toolInstance) return null;\n\n const {\n labelSelectedList,\n config: { inputList },\n currentTagResult,\n setLabel,\n } = toolInstance;\n\n const selectedButton = (index: number) => {\n if (labelSelectedList.length > 0 && labelSelectedList[0] === index) {\n return <span className='keyDownIconActive'>{index + 1}</span>;\n }\n return <span className='keyDownIcon'>{index + 1}</span>;\n };\n\n // basicIndex 到底是那一层\n const labelPanel = (labelInfoSet: IInputList[], basicIndex = -1) => {\n if (!labelInfoSet) {\n return null;\n }\n\n return labelInfoSet.map((info: IInputList, index: number) => {\n if (info.subSelected) {\n // 判断是否有数据\n const isResult = TagUtils.judgeResultIsInInputList(\n info.value,\n currentTagResult?.result?.[info.value],\n inputList,\n );\n\n return (\n <Collapse\n bordered={false}\n expandIcon={expandIconFuc}\n key={`collapse_${index}_${basicIndex + 1}`}\n onChange={() => setExpendKeyList(index, info.value)}\n activeKey={[expandKeyList[index]]}\n >\n <Panel\n header={\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flex: 1,\n }}\n >\n <span>\n {info.key}\n <Tooltip placement='bottom' title={t('ClearThisOption')}>\n <img\n style={{ marginLeft: 5, cursor: 'pointer' }}\n onClick={(e) => {\n e.stopPropagation();\n toolInstance.clearResult(true, info.value);\n }}\n src={hoverDeleteIndex === index || isResult ? clearSmallA : clearSmall}\n onMouseEnter={() => {\n setHoverDeleteIndex(index);\n }}\n onMouseLeave={() => {\n setHoverDeleteIndex(-1);\n }}\n />\n </Tooltip>\n {isResult && expandKeyList[index] === '' && <Badge color='#87d068' />}\n </span>\n\n {inputList?.length > 1 && selectedButton(index)}\n </div>\n }\n key={info.value}\n >\n <div\n className='level'\n style={{\n backgroundColor:\n labelSelectedList.length > 0 && labelSelectedList[0] === index\n ? 'rgba(158, 158, 158, 0.18)'\n : '',\n }}\n >\n {labelPanel(info.subSelected, index)}\n </div>\n </Panel>\n </Collapse>\n );\n }\n const key = inputList?.[basicIndex] ? inputList?.[basicIndex].value : 0;\n const selectedAttribute =\n currentTagResult?.result?.[key]?.split(';')?.indexOf(info.value) > -1 ? info.value : '';\n\n if (inputList?.[basicIndex]?.isMulti === true) {\n return (\n <div className='singleBar' key={`${key}_${basicIndex}_${index}`}>\n <CheckBoxList\n attributeChanged={() => setLabel(basicIndex, index)}\n selectedAttribute={[selectedAttribute]}\n list={[{ value: info.value, label: info.key }]}\n num={index + 1}\n />\n </div>\n );\n }\n return (\n <div className='singleBar' key={`${key}_${basicIndex}_${index}`}>\n <RadioList\n forbidColor\n attributeChanged={() => setLabel(basicIndex, index)}\n selectedAttribute={selectedAttribute}\n list={[{ value: info.value, label: info.key }]}\n num={index + 1}\n />\n </div>\n );\n });\n };\n const height = window.innerHeight - 61 - 80;\n\n return (\n <div className='tagOperationMenu' ref={sidebarRef}>\n {inputList?.length === 0 ? (\n <div style={{ padding: 20, textAlign: 'center' }}>{t('NoConfiguration')}</div>\n ) : (\n <div className='main' style={{ height }}>\n {labelPanel(inputList)}\n </div>\n )}\n </div>\n );\n};\n\nfunction mapStateToProps(state: AppState) {\n return { toolInstance: state.annotation.toolInstance, imgIndex: state.annotation.imgIndex };\n}\n\nexport default connect(mapStateToProps)(TagSidebar);\n"],"names":["clearSmallA","clearSmall","CheckBoxList","RadioList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/TagSidebar/index.tsx"],"sourcesContent":["import RadioList from '@/components/attributeList';\nimport CheckBoxList from '@/components/checkboxList';\nimport { CaretRightOutlined } from '@ant-design/icons';\nimport { Badge, Collapse, Tooltip } from 'antd/es';\nimport { cloneDeep } from 'lodash';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport clearSmall from '@/assets/annotation/common/icon_clearSmall.svg';\nimport clearSmallA from '@/assets/annotation/common/icon_clearSmall_a.svg';\nimport { TagOperation, TagUtils } from '@labelbee/lb-annotation';\nimport { connect } from 'react-redux';\nimport { AppState } from '@/store';\nimport { IInputList } from '@/types/main';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n imgIndex: number;\n toolInstance: TagOperation;\n}\n\nconst { Panel } = Collapse;\n\nexport const expandIconFuc = ({ isActive }: any) => (\n <CaretRightOutlined rotate={isActive ? 90 : 0} />\n);\n\nconst TagSidebar: React.FC<IProps> = ({ toolInstance, imgIndex }) => {\n const [expandKeyList, setExpandKeyList] = useState<string[]>([]);\n\n const sidebarRef = useRef<HTMLDivElement>(null);\n const [, forceRender] = useState<number>(0);\n const [hoverDeleteIndex, setHoverDeleteIndex] = useState(-1);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n // 用于配置的初始化\n setExpandKeyList(toolInstance.config.inputList.map((v: IInputList) => v.value));\n\n // 进行实时渲染\n toolInstance.singleOn('render', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n useEffect(() => {\n if (toolInstance) {\n // 该写法会不断的重复绑定,后续写法上可以更改(如果将 singleOn 改为 on 会有很大问题)\n toolInstance.singleOn('expend', expendRender);\n\n if (toolInstance.labelSelectedList.length === 1) {\n let height = 0;\n for (let i = 0; i < toolInstance.labelSelectedList[0]; i++) {\n height += 46;\n inputList[i] &&\n expandKeyList[i] !== '' &&\n inputList[i].subSelected.forEach((i: any) => {\n height += 40;\n });\n }\n if (sidebarRef.current) {\n sidebarRef.current.children[0].scrollTop = height;\n }\n }\n }\n });\n\n useEffect(() => {\n // 翻页侧边栏跳到最上\n if (sidebarRef.current) {\n sidebarRef.current.children[0].scrollTop = 0;\n }\n }, [imgIndex]);\n\n const expendRender = () => {\n const index = toolInstance.labelSelectedList[0];\n const value = inputList.filter((v: IInputList, i: number) => i === index)[0]?.value;\n setExpendKeyList(index, value, true);\n };\n\n const setExpendKeyList = useCallback(\n (index: number, value: string, expend?: boolean) => {\n const newKeyList = cloneDeep(expandKeyList);\n if (newKeyList[index] === '' || expend === true) {\n newKeyList[index] = value;\n } else {\n newKeyList[index] = '';\n }\n setExpandKeyList(newKeyList);\n },\n [expandKeyList],\n );\n\n if (!toolInstance) return null;\n\n const {\n labelSelectedList,\n config: { inputList },\n currentTagResult,\n setLabel,\n } = toolInstance;\n\n const selectedButton = (index: number) => {\n if (labelSelectedList.length > 0 && labelSelectedList[0] === index) {\n return <span className='keyDownIconActive'>{index + 1}</span>;\n }\n return <span className='keyDownIcon'>{index + 1}</span>;\n };\n\n // basicIndex 到底是那一层\n const labelPanel = (labelInfoSet: IInputList[], basicIndex = -1) => {\n if (!labelInfoSet) {\n return null;\n }\n\n return labelInfoSet.map((info: IInputList, index: number) => {\n if (info.subSelected) {\n // 判断是否有数据\n const isResult = TagUtils.judgeResultIsInInputList(\n info.value,\n currentTagResult?.result?.[info.value],\n inputList,\n );\n\n return (\n <Collapse\n bordered={false}\n expandIcon={expandIconFuc}\n key={`collapse_${index}_${basicIndex + 1}`}\n onChange={() => setExpendKeyList(index, info.value)}\n activeKey={[expandKeyList[index]]}\n >\n <Panel\n header={\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flex: 1,\n }}\n >\n <span>\n {info.key}\n <Tooltip placement='bottom' title={t('ClearThisOption')}>\n <img\n style={{ marginLeft: 5, cursor: 'pointer' }}\n onClick={(e) => {\n e.stopPropagation();\n toolInstance.clearResult(true, info.value);\n }}\n src={hoverDeleteIndex === index || isResult ? clearSmallA : clearSmall}\n onMouseEnter={() => {\n setHoverDeleteIndex(index);\n }}\n onMouseLeave={() => {\n setHoverDeleteIndex(-1);\n }}\n />\n </Tooltip>\n {isResult && expandKeyList[index] === '' && <Badge color='#87d068' />}\n </span>\n\n {inputList?.length > 1 && selectedButton(index)}\n </div>\n }\n key={info.value}\n >\n <div\n className='level'\n style={{\n backgroundColor:\n labelSelectedList.length > 0 && labelSelectedList[0] === index\n ? 'rgba(158, 158, 158, 0.18)'\n : '',\n }}\n >\n {labelPanel(info.subSelected, index)}\n </div>\n </Panel>\n </Collapse>\n );\n }\n const key = inputList?.[basicIndex] ? inputList?.[basicIndex].value : 0;\n const selectedAttribute =\n currentTagResult?.result?.[key]?.split(';')?.indexOf(info.value) > -1 ? info.value : '';\n\n if (inputList?.[basicIndex]?.isMulti === true) {\n return (\n <div className='singleBar' key={`${key}_${basicIndex}_${index}`}>\n <CheckBoxList\n attributeChanged={() => setLabel(basicIndex, index)}\n selectedAttribute={[selectedAttribute]}\n list={[{ value: info.value, label: info.key }]}\n num={index + 1}\n />\n </div>\n );\n }\n return (\n <div className='singleBar' key={`${key}_${basicIndex}_${index}`}>\n <RadioList\n forbidColor\n attributeChanged={() => setLabel(basicIndex, index)}\n selectedAttribute={selectedAttribute}\n list={[{ value: info.value, label: info.key }]}\n num={index + 1}\n />\n </div>\n );\n });\n };\n const height = window.innerHeight - 61 - 80;\n\n return (\n <div className='tagOperationMenu' ref={sidebarRef}>\n {inputList?.length === 0 ? (\n <div style={{ padding: 20, textAlign: 'center' }}>{t('NoConfiguration')}</div>\n ) : (\n <div className='main' style={{ height }}>\n {labelPanel(inputList)}\n </div>\n )}\n </div>\n );\n};\n\nfunction mapStateToProps(state: AppState) {\n return { toolInstance: state.annotation.toolInstance, imgIndex: state.annotation.imgIndex };\n}\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(TagSidebar);\n"],"names":["clearSmallA","clearSmall","CheckBoxList","RadioList"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import n,{useState as d,useEffect as _,useRef as K}from"react";import{connect as R}from"react-redux";import{cloneDeep as j}from"lodash";import{classnames as C}from"../../../../utils/index.js";import{Input as D}from"antd/es";import{cKeyCode as $}from"@labelbee/lb-annotation";import{PageForward as q}from"../../../../store/annotation/actionCreators.js";import{ConfigUtils as
|
|
1
|
+
import n,{useState as d,useEffect as _,useRef as K}from"react";import{connect as R}from"react-redux";import{cloneDeep as j}from"lodash";import{classnames as C}from"../../../../utils/index.js";import{Input as D}from"antd/es";import{cKeyCode as $}from"@labelbee/lb-annotation";import{PageForward as q}from"../../../../store/annotation/actionCreators.js";import{ConfigUtils as B}from"../../../../utils/ConfigUtils.js";import{useTranslation as U}from"react-i18next";import{LabelBeeContext as M}from"../../../../store/ctx.js";var z=Object.defineProperty,I=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,S=(e,t,a)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,G=(e,t)=>{for(var a in t||(t={}))V.call(t,a)&&S(e,a,t[a]);if(I)for(var a of I(t))W.call(t,a)&&S(e,a,t[a]);return e};const L=$.default,F=e=>{e.stopPropagation(),e.nativeEvent.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},O=e=>{const{textareaProps:t,footer:a}=e;return n.createElement(n.Fragment,null,n.createElement(D.TextArea,G({bordered:!1,rows:6,onKeyDown:F,onKeyUp:F},t)),n.createElement("div",{className:C({textAreaLength:!0})},a))},k=e=>{var t;const a=K(null),[x,c]=d(!1),[w,g]=d(!1),{t:u}=U(),{disabled:l,config:i,result:v,updateText:E,index:T,switchToNextTextarea:h,hasMultiple:P,onNext:p}=e,{maxLength:m}=i,f=v?v[i.key]:"",b=(t=f==null?void 0:f.length)!=null?t:0,N=o=>{E&&(E(o,i.key),i.required&&g(!o))},y=P&&h,r={id:`textInput-${T}`,ref:a,disabled:l,value:f,maxLength:m,autoSize:{minRows:2,maxRows:6},onChange:o=>{const A=o.target.value;N(A)},onFocus:()=>{c(!0)},onBlur:o=>{c(!1),i.required&&g(!o.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:o=>{o.ctrlKey&&o.keyCode===L.Enter&&(p&&p(),o.preventDefault()),o.keyCode===L.Tab&&y&&(o.preventDefault(),o.nativeEvent.stopImmediatePropagation(),h(T)),o.nativeEvent.stopPropagation()}},s=n.createElement("div",{className:"textAreaFooter"},n.createElement("div",{className:"hotkeyTip"},y&&n.createElement("span",null,`[${u("Switch")}]Tab`),n.createElement("span",null,`[${u("TurnPage")}]Ctrl+Enter`)),n.createElement("div",{className:"wordCount"},n.createElement("span",{className:b>=m?"warning":""},b),"/",n.createElement("span",null,m)));return _(()=>{l&&c(!1)},[l]),n.createElement("div",{className:"textField"},n.createElement("div",{className:"label"},n.createElement("span",{className:C({required:i.required})},i.label),n.createElement("i",{className:C({clearText:!0,disabled:l}),onClick:()=>{l||N("")}})),n.createElement("div",{className:C({disabled:l,"textarea-outline":!0,"ant-input-focused":x,textareaContainer:!0,focus:x,invalid:w})},n.createElement(O,{footer:s,textareaProps:r})))},H=({toolInstance:e,imgIndex:t,dispatch:a,triggerEventAfterIndexChanged:x,step:c,stepList:w,basicResultList:g})=>{var u,l;const[i,v]=d([]),[E,T]=d(0),[,h]=d(0),P=r=>{const s=(r+1)%i.length;p(s)},p=r=>{setTimeout(()=>{const s=document.getElementById(`textInput-${r}`);s&&(T(r),s.focus(),s.select(),s.scrollIntoView({behavior:"smooth",block:"center"}))})};_(()=>{e&&(v(j(e.config.configList)),e.singleOn("valueUpdated",()=>{h(r=>r+1)}))},[e]);const m=(r,s)=>{e.updateTextValue(s,r)};_(()=>{t>-1&&x&&p(0)},[t]);const f=(l=(u=e.textList[0])==null?void 0:u.value)!=null?l:{},b=()=>{a(q(!0))},y=B.getStepConfig(w,c).dataSourceStep>0&&g.length===0;return n.createElement("div",{className:"textToolOperationMenu"},i.map((r,s)=>n.createElement(k,{config:r,key:r.key,index:s,result:f,updateText:m,switchToNextTextarea:P,hasMultiple:i.length>1,focus:E===s,onNext:b,disabled:y})))};function J(e){return{toolInstance:e.annotation.toolInstance,imgIndex:e.annotation.imgIndex,step:e.annotation.step,basicResultList:e.annotation.basicResultList,stepList:e.annotation.stepList,triggerEventAfterIndexChanged:e.annotation.triggerEventAfterIndexChanged}}var Q=R(J,null,null,{context:M})(H);export{k as SingleTextInput,O as TextareaWithFooter,Q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/TextToolSidebar/index.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef, FocusEvent } from 'react';\nimport { connect } from 'react-redux';\nimport { AppState } from '@/store';\nimport { cloneDeep } from 'lodash';\nimport { classnames } from '@/utils';\nimport { Input } from 'antd/es';\nimport { cKeyCode } from '@labelbee/lb-annotation';\nimport { PageForward } from '@/store/annotation/actionCreators';\nimport { ConfigUtils } from '@/utils/ConfigUtils';\nimport { IStepInfo } from '@/types/step';\nimport TextToolOperation from '@labelbee/lb-annotation/dist/types/core/toolOperation/TextToolOperation';\nimport { useTranslation } from 'react-i18next';\n\nconst EKeyCode = cKeyCode.default;\n\nconst syntheticEventStopPagination = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n e.nativeEvent.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n};\n\ninterface ITextareaWithFooterProps {\n textareaProps?: any;\n footer?: any;\n}\n\nexport const TextareaWithFooter = (props: ITextareaWithFooterProps) => {\n const { textareaProps, footer } = props;\n\n return (\n <>\n <Input.TextArea\n bordered={false}\n rows={6}\n onKeyDown={syntheticEventStopPagination}\n onKeyUp={syntheticEventStopPagination}\n {...textareaProps}\n />\n <div\n className={classnames({\n textAreaLength: true,\n })}\n >\n {footer}\n </div>\n </>\n );\n};\n\ninterface IProps {\n dispatch: Function;\n toolInstance: TextToolOperation;\n imgIndex: number;\n triggerEventAfterIndexChanged: boolean;\n step: number;\n stepList: IStepInfo[];\n basicResultList: any[];\n}\n\ninterface IConfigListItem {\n label: string;\n key: string;\n required: boolean;\n default: string;\n maxLength: number;\n}\n\nexport const SingleTextInput = (props: any) => {\n const ref = useRef(null);\n const [textAreaFocus, setTextAreaFocus] = useState(false);\n const [invalid, setInvalid] = useState(false);\n const { t } = useTranslation();\n\n const { disabled, config, result, updateText, index, switchToNextTextarea, hasMultiple, onNext } =\n props;\n const { maxLength } = config;\n\n const value = result ? result[config.key] : '';\n const textLength = value?.length ?? 0;\n\n const updateTextWithKey = (newVal: string) => {\n if (updateText) {\n updateText(newVal, config.key);\n if (config.required) {\n setInvalid(!newVal);\n }\n }\n };\n\n const tabToSwitchEnabled = hasMultiple && switchToNextTextarea;\n\n const textareaProps = {\n id: `textInput-${index}`,\n ref,\n disabled,\n value,\n maxLength,\n autoSize: { minRows: 2, maxRows: 6 },\n onChange: (e: FocusEvent<HTMLTextAreaElement>) => {\n const value = e.target.value;\n updateTextWithKey(value);\n },\n onFocus: () => {\n setTextAreaFocus(true);\n },\n onBlur: (e: FocusEvent<HTMLTextAreaElement>) => {\n setTextAreaFocus(false);\n if (config.required) {\n setInvalid(!e.target.value);\n }\n },\n style: {\n resize: 'none',\n wordBreak: 'break-all',\n },\n onKeyDownCapture: (e: React.KeyboardEvent) => {\n if (e.ctrlKey && e.keyCode === EKeyCode.Enter) {\n if (onNext) {\n onNext();\n }\n e.preventDefault();\n }\n\n if (e.keyCode === EKeyCode.Tab && tabToSwitchEnabled) {\n e.preventDefault();\n e.nativeEvent.stopImmediatePropagation();\n switchToNextTextarea(index);\n }\n\n e.nativeEvent.stopPropagation();\n },\n };\n\n const TextareaFooter = (\n <div className='textAreaFooter'>\n <div className='hotkeyTip'>\n {tabToSwitchEnabled && <span>{`[${t('Switch')}]Tab`}</span>}\n <span>{`[${t('TurnPage')}]Ctrl+Enter`}</span>\n </div>\n <div className='wordCount'>\n <span className={textLength >= maxLength ? 'warning' : ''}>{textLength}</span>/\n <span>{maxLength}</span>\n </div>\n </div>\n );\n\n useEffect(() => {\n if (disabled) {\n setTextAreaFocus(false);\n }\n }, [disabled]);\n\n return (\n <div className='textField'>\n <div className='label'>\n <span className={classnames({ required: config.required })}>{config.label}</span>\n <i\n className={classnames({ clearText: true, disabled: disabled })}\n onClick={() => {\n if (disabled) {\n return;\n }\n updateTextWithKey('');\n }}\n />\n </div>\n <div\n className={classnames({\n disabled,\n 'textarea-outline': true,\n 'ant-input-focused': textAreaFocus,\n textareaContainer: true,\n focus: textAreaFocus,\n invalid: invalid,\n })}\n >\n <TextareaWithFooter footer={TextareaFooter} textareaProps={textareaProps} />\n </div>\n </div>\n );\n};\n\nconst TextToolSidebar: React.FC<IProps> = ({\n toolInstance,\n imgIndex,\n dispatch,\n triggerEventAfterIndexChanged,\n step,\n stepList,\n basicResultList,\n}) => {\n const [configList, setConfigList] = useState<IConfigListItem[]>([]);\n const [focusIndex, setFocusIndex] = useState(0);\n const [, forceRender] = useState(0);\n\n const switchToNextTextarea = (currentIndex: number) => {\n const nextIndex = (currentIndex + 1) % configList.length;\n textareaFocus(nextIndex);\n };\n\n const textareaFocus = (index: number) => {\n setTimeout(() => {\n const textarea = document.getElementById(`textInput-${index}`) as HTMLTextAreaElement;\n if (textarea) {\n setFocusIndex(index);\n textarea.focus();\n textarea.select();\n textarea.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n });\n };\n\n useEffect(() => {\n if (toolInstance) {\n setConfigList(cloneDeep(toolInstance.config.configList));\n toolInstance.singleOn('valueUpdated', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n const updateText = (v: string, k: string) => {\n toolInstance.updateTextValue(k, v);\n };\n\n useEffect(() => {\n if (imgIndex > -1 && triggerEventAfterIndexChanged) {\n textareaFocus(0);\n }\n }, [imgIndex]);\n\n const result = toolInstance.textList[0]?.value ?? {};\n\n const onNext = () => {\n dispatch(PageForward(true));\n };\n\n const stepConfig = ConfigUtils.getStepConfig(stepList, step);\n const disabled = stepConfig.dataSourceStep > 0 && basicResultList.length === 0;\n\n return (\n <div className='textToolOperationMenu'>\n {configList.map((i, index) => (\n <SingleTextInput\n config={i}\n key={i.key}\n index={index}\n result={result}\n updateText={updateText}\n switchToNextTextarea={switchToNextTextarea}\n hasMultiple={configList.length > 1}\n focus={focusIndex === index}\n onNext={onNext}\n disabled={disabled}\n />\n ))}\n </div>\n );\n};\n\nfunction mapStateToProps(state: AppState) {\n return {\n toolInstance: state.annotation.toolInstance,\n imgIndex: state.annotation.imgIndex,\n step: state.annotation.step,\n basicResultList: state.annotation.basicResultList,\n stepList: state.annotation.stepList,\n triggerEventAfterIndexChanged: state.annotation.triggerEventAfterIndexChanged,\n };\n}\n\nexport default connect(mapStateToProps)(TextToolSidebar);\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/TextToolSidebar/index.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef, FocusEvent } from 'react';\nimport { connect } from 'react-redux';\nimport { AppState } from '@/store';\nimport { cloneDeep } from 'lodash';\nimport { classnames } from '@/utils';\nimport { Input } from 'antd/es';\nimport { cKeyCode } from '@labelbee/lb-annotation';\nimport { PageForward } from '@/store/annotation/actionCreators';\nimport { ConfigUtils } from '@/utils/ConfigUtils';\nimport { IStepInfo } from '@/types/step';\nimport TextToolOperation from '@labelbee/lb-annotation/dist/types/core/toolOperation/TextToolOperation';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\nconst EKeyCode = cKeyCode.default;\n\nconst syntheticEventStopPagination = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n e.nativeEvent.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n};\n\ninterface ITextareaWithFooterProps {\n textareaProps?: any;\n footer?: any;\n}\n\nexport const TextareaWithFooter = (props: ITextareaWithFooterProps) => {\n const { textareaProps, footer } = props;\n\n return (\n <>\n <Input.TextArea\n bordered={false}\n rows={6}\n onKeyDown={syntheticEventStopPagination}\n onKeyUp={syntheticEventStopPagination}\n {...textareaProps}\n />\n <div\n className={classnames({\n textAreaLength: true,\n })}\n >\n {footer}\n </div>\n </>\n );\n};\n\ninterface IProps {\n dispatch: Function;\n toolInstance: TextToolOperation;\n imgIndex: number;\n triggerEventAfterIndexChanged: boolean;\n step: number;\n stepList: IStepInfo[];\n basicResultList: any[];\n}\n\ninterface IConfigListItem {\n label: string;\n key: string;\n required: boolean;\n default: string;\n maxLength: number;\n}\n\nexport const SingleTextInput = (props: any) => {\n const ref = useRef(null);\n const [textAreaFocus, setTextAreaFocus] = useState(false);\n const [invalid, setInvalid] = useState(false);\n const { t } = useTranslation();\n\n const { disabled, config, result, updateText, index, switchToNextTextarea, hasMultiple, onNext } =\n props;\n const { maxLength } = config;\n\n const value = result ? result[config.key] : '';\n const textLength = value?.length ?? 0;\n\n const updateTextWithKey = (newVal: string) => {\n if (updateText) {\n updateText(newVal, config.key);\n if (config.required) {\n setInvalid(!newVal);\n }\n }\n };\n\n const tabToSwitchEnabled = hasMultiple && switchToNextTextarea;\n\n const textareaProps = {\n id: `textInput-${index}`,\n ref,\n disabled,\n value,\n maxLength,\n autoSize: { minRows: 2, maxRows: 6 },\n onChange: (e: FocusEvent<HTMLTextAreaElement>) => {\n const value = e.target.value;\n updateTextWithKey(value);\n },\n onFocus: () => {\n setTextAreaFocus(true);\n },\n onBlur: (e: FocusEvent<HTMLTextAreaElement>) => {\n setTextAreaFocus(false);\n if (config.required) {\n setInvalid(!e.target.value);\n }\n },\n style: {\n resize: 'none',\n wordBreak: 'break-all',\n },\n onKeyDownCapture: (e: React.KeyboardEvent) => {\n if (e.ctrlKey && e.keyCode === EKeyCode.Enter) {\n if (onNext) {\n onNext();\n }\n e.preventDefault();\n }\n\n if (e.keyCode === EKeyCode.Tab && tabToSwitchEnabled) {\n e.preventDefault();\n e.nativeEvent.stopImmediatePropagation();\n switchToNextTextarea(index);\n }\n\n e.nativeEvent.stopPropagation();\n },\n };\n\n const TextareaFooter = (\n <div className='textAreaFooter'>\n <div className='hotkeyTip'>\n {tabToSwitchEnabled && <span>{`[${t('Switch')}]Tab`}</span>}\n <span>{`[${t('TurnPage')}]Ctrl+Enter`}</span>\n </div>\n <div className='wordCount'>\n <span className={textLength >= maxLength ? 'warning' : ''}>{textLength}</span>/\n <span>{maxLength}</span>\n </div>\n </div>\n );\n\n useEffect(() => {\n if (disabled) {\n setTextAreaFocus(false);\n }\n }, [disabled]);\n\n return (\n <div className='textField'>\n <div className='label'>\n <span className={classnames({ required: config.required })}>{config.label}</span>\n <i\n className={classnames({ clearText: true, disabled: disabled })}\n onClick={() => {\n if (disabled) {\n return;\n }\n updateTextWithKey('');\n }}\n />\n </div>\n <div\n className={classnames({\n disabled,\n 'textarea-outline': true,\n 'ant-input-focused': textAreaFocus,\n textareaContainer: true,\n focus: textAreaFocus,\n invalid: invalid,\n })}\n >\n <TextareaWithFooter footer={TextareaFooter} textareaProps={textareaProps} />\n </div>\n </div>\n );\n};\n\nconst TextToolSidebar: React.FC<IProps> = ({\n toolInstance,\n imgIndex,\n dispatch,\n triggerEventAfterIndexChanged,\n step,\n stepList,\n basicResultList,\n}) => {\n const [configList, setConfigList] = useState<IConfigListItem[]>([]);\n const [focusIndex, setFocusIndex] = useState(0);\n const [, forceRender] = useState(0);\n\n const switchToNextTextarea = (currentIndex: number) => {\n const nextIndex = (currentIndex + 1) % configList.length;\n textareaFocus(nextIndex);\n };\n\n const textareaFocus = (index: number) => {\n setTimeout(() => {\n const textarea = document.getElementById(`textInput-${index}`) as HTMLTextAreaElement;\n if (textarea) {\n setFocusIndex(index);\n textarea.focus();\n textarea.select();\n textarea.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n });\n };\n\n useEffect(() => {\n if (toolInstance) {\n setConfigList(cloneDeep(toolInstance.config.configList));\n toolInstance.singleOn('valueUpdated', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n const updateText = (v: string, k: string) => {\n toolInstance.updateTextValue(k, v);\n };\n\n useEffect(() => {\n if (imgIndex > -1 && triggerEventAfterIndexChanged) {\n textareaFocus(0);\n }\n }, [imgIndex]);\n\n const result = toolInstance.textList[0]?.value ?? {};\n\n const onNext = () => {\n dispatch(PageForward(true));\n };\n\n const stepConfig = ConfigUtils.getStepConfig(stepList, step);\n const disabled = stepConfig.dataSourceStep > 0 && basicResultList.length === 0;\n\n return (\n <div className='textToolOperationMenu'>\n {configList.map((i, index) => (\n <SingleTextInput\n config={i}\n key={i.key}\n index={index}\n result={result}\n updateText={updateText}\n switchToNextTextarea={switchToNextTextarea}\n hasMultiple={configList.length > 1}\n focus={focusIndex === index}\n onNext={onNext}\n disabled={disabled}\n />\n ))}\n </div>\n );\n};\n\nfunction mapStateToProps(state: AppState) {\n return {\n toolInstance: state.annotation.toolInstance,\n imgIndex: state.annotation.imgIndex,\n step: state.annotation.step,\n basicResultList: state.annotation.basicResultList,\n stepList: state.annotation.stepList,\n triggerEventAfterIndexChanged: state.annotation.triggerEventAfterIndexChanged,\n };\n}\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(TextToolSidebar);\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{EToolName as e}from"../../../data/enums/ToolType.js";import t from"react";import{sidebarCls as s}from"./index.js";import p from"../../../assets/annotation/lineTool/icon_line.svg.js";import v from"../../../assets/annotation/lineTool/icon_line_a.svg.js";import _ from"../../../assets/annotation/pointTool/icon_point.svg.js";import d from"../../../assets/annotation/pointTool/icon_point_a.svg.js";import N from"../../../assets/annotation/polygonTool/icon_polygon_a.svg.js";import T from"../../../assets/annotation/polygonTool/icon_polygon.svg.js";import u from"../../../assets/annotation/rectTool/icon_rect.svg.js";import f from"../../../assets/annotation/rectTool/icon_rect_a.svg.js";import{cTool as S}from"@labelbee/lb-annotation";import $ from"classnames";import{useTranslation as j}from"react-i18next";const{EPointCloudName:E,TOOL_NAME:y,TOOL_NAME_EN:O}=S,m=[{toolName:e.Rect,commonSvg:u,selectedSvg:f},{toolName:e.Polygon,commonSvg:T,selectedSvg:N},{toolName:e.Line,commonSvg:p,selectedSvg:v},{toolName:e.Point,commonSvg:_,selectedSvg:d}],P=n=>n==="en"?O:y,b=({toolName:n,selectedToolName:r,onChange:l})=>{const{i18n:c}=j(),i=m==null?void 0:m.filter(o=>n===E.PointCloud?[e.Polygon,e.Rect].includes(o==null?void 0:o.toolName):(o==null?void 0:o.toolName)===n),g=i.length>1;return t.createElement("div",{className:`${s}__level`},i.map(o=>{const a=g&&r===o.toolName;return t.createElement("span",{className:`${s}__toolOption`,key:o.toolName,onClick:()=>l==null?void 0:l(o.toolName)},t.createElement("img",{className:`${s}__singleTool`,src:a?o==null?void 0:o.selectedSvg:o==null?void 0:o.commonSvg}),t.createElement("span",{className:$({[`${s}__toolOption__selected`]:a})},P(c.language)[o.toolName]))}))};export{b as ToolIcons};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolIcons.js","sources":["../../../../src/views/MainView/sidebar/ToolIcons.tsx"],"sourcesContent":["/**\n * @file Tool options on tool's sidebar\n * @author Glenfiddish <edwinlee0927@hotmail.com>\n * @createdate 2022-07-14\n */\n\nimport { EToolName } from '@/data/enums/ToolType';\nimport React from 'react';\nimport { sidebarCls } from './index';\nimport lineSvg from '@/assets/annotation/lineTool/icon_line.svg';\nimport lineASvg from '@/assets/annotation/lineTool/icon_line_a.svg';\nimport pointSvg from '@/assets/annotation/pointTool/icon_point.svg';\nimport pointASvg from '@/assets/annotation/pointTool/icon_point_a.svg';\nimport PolygonASvg from '@/assets/annotation/polygonTool/icon_polygon_a.svg';\nimport PolygonSvg from '@/assets/annotation/polygonTool/icon_polygon.svg';\nimport rectSvg from '@/assets/annotation/rectTool/icon_rect.svg';\nimport rectASvg from '@/assets/annotation/rectTool/icon_rect_a.svg';\nimport { cTool } from '@labelbee/lb-annotation';\nimport classnames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nconst { EPointCloudName, TOOL_NAME, TOOL_NAME_EN } = cTool;\n\nconst toolList = [\n {\n toolName: EToolName.Rect,\n commonSvg: rectSvg,\n selectedSvg: rectASvg,\n },\n {\n toolName: EToolName.Polygon,\n commonSvg: PolygonSvg,\n selectedSvg: PolygonASvg,\n },\n {\n toolName: EToolName.Line,\n commonSvg: lineSvg,\n selectedSvg: lineASvg,\n },\n {\n toolName: EToolName.Point,\n commonSvg: pointSvg,\n selectedSvg: pointASvg,\n },\n];\n\nconst getToolNameVersion = (lang: string) => {\n if (lang === 'en') {\n return TOOL_NAME_EN;\n }\n return TOOL_NAME;\n};\n\nexport const ToolIcons = ({\n toolName,\n selectedToolName,\n onChange,\n}: {\n toolName: string;\n selectedToolName?: string;\n onChange: (toolName: EToolName) => void;\n}) => {\n const { i18n } = useTranslation();\n const renderTools = toolList?.filter((item) => {\n if (toolName === (EPointCloudName.PointCloud as unknown as EToolName)) {\n return [EToolName.Polygon, EToolName.Rect].includes(item?.toolName);\n }\n\n return item?.toolName === toolName;\n });\n\n const hasMultiTools = renderTools.length > 1;\n\n return (\n <div className={`${sidebarCls}__level`}>\n {renderTools.map((tool) => {\n const isSelected = hasMultiTools && selectedToolName === tool.toolName;\n return (\n <span\n className={`${sidebarCls}__toolOption`}\n key={tool.toolName}\n onClick={() => onChange?.(tool.toolName)}\n >\n <img\n className={`${sidebarCls}__singleTool`}\n src={isSelected ? tool?.selectedSvg : tool?.commonSvg}\n />\n <span\n className={classnames({\n [`${sidebarCls}__toolOption__selected`]: isSelected,\n })}\n >\n {getToolNameVersion(i18n.language)[tool.toolName]}\n </span>\n </span>\n );\n })}\n </div>\n );\n};\n"],"names":["rectSvg","rectASvg","PolygonSvg","PolygonASvg","lineSvg","lineASvg","pointSvg","pointASvg","classnames"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Slider as
|
|
1
|
+
import{Slider as v}from"antd/es";import o from"react";import g from"../../../../assets/toolStyle/icon_border.svg.js";import b from"../../../../assets/toolStyle/icon_borderColor.svg.js";import S from"../../../../assets/toolStyle/icon_opacityStroke.svg.js";import h from"../../../../assets/toolStyle/icon_opacityFill.svg.js";import{connect as k}from"react-redux";import{UpdateToolStyleConfig as O}from"../../../../store/toolStyle/actionCreators.js";import{store as w}from"../../../../index.js";import{LabelBeeContext as C}from"../../../../store/ctx.js";import{useTranslation as x}from"react-i18next";const T=(e,a)=>{const c=[{step:1,value:"1"},{step:2,value:"2"},{step:3,value:"3"},{step:4,value:"4"},{step:5,value:"5"}],n=[{step:1,value:"Blue"},{step:3,value:"Cyan"},{step:5,value:"Green"},{step:7,value:"Yellow"},{step:9,value:"Pink"}],i=[{step:1,value:"0.2"},{step:3,value:"0.4"},{step:5,value:"0.6"},{step:7,value:"0.8"},{step:9,value:"1.0"}],p=[{step:1,value:"0"},{step:3,value:"0.2"},{step:5,value:"0.4"},{step:7,value:"0.6"},{step:9,value:"0.8"}];let r=[];const l={};switch(e){case"width":r=c;break;case"color":r=n;break;case"borderOpacity":r=i;break;case"fillOpacity":r=p;break}return r.forEach(({step:s,value:u})=>{l[s]={style:{color:"#999999",fontSize:"12px"},label:o.createElement("span",null,a(u))}}),l},j=e=>{switch(e){case"width":return"BorderThickness";case"color":return"Color";case"borderOpacity":return"BorderOpacity";case"fillOpacity":return"FillOpacity";default:return""}},E=e=>{switch(e){case"width":return g;case"color":return b;case"borderOpacity":return S;case"fillOpacity":return h}},M=e=>{switch(e){case"width":return 2;case"color":return 1;case"borderOpacity":return 9;case"fillOpacity":return 9}},y=e=>["width"].includes(e),N=e=>{const{toolStyle:a}=e,{width:c,color:n,borderOpacity:i,fillOpacity:p}=a,r={width:c,color:n,borderOpacity:i,fillOpacity:p},{t:l}=x(),s=e.config,u=m=>{w.dispatch(O(m))};return o.createElement("div",{className:"toolStyle"},Object.entries(r).map(m=>{var d;const t=m[0];return(s==null?void 0:s.attributeConfigurable)===!0&&t==="color"?null:o.createElement("div",{id:`style-${t}`,className:"styleSlider",key:t},o.createElement("span",{className:"title"},o.createElement("img",{src:E(t),className:"icon"}),l(j(t))),o.createElement("span",{className:"slider"},o.createElement(v,{tipFormatter:null,max:y(t)?5:10,min:y(t)?1:0,step:y(t)?1:null,value:(d=a[t])!=null?d:M(t),marks:T(t,l),onChange:f=>u({[t]:f})})))}))},_=({toolStyle:e,annotation:a})=>({toolStyle:e,config:a.toolInstance.config});var $=k(_,null,null,{context:C})(N);export{$ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ToolStyle/index.tsx"],"sourcesContent":["import { Slider } from 'antd/es';\nimport React from 'react';\nimport widthSvg from '@/assets/toolStyle/icon_border.svg';\nimport colorSvg from '@/assets/toolStyle/icon_borderColor.svg';\nimport borderOpacitySvg from '@/assets/toolStyle/icon_opacityStroke.svg';\nimport fillOpacitySvg from '@/assets/toolStyle/icon_opacityFill.svg';\n\nimport { connect } from 'react-redux';\nimport { UpdateToolStyleConfig } from '@/store/toolStyle/actionCreators';\nimport { store } from '@/index';\nimport { AppState } from '@/store';\nimport { ToolStyleState } from '@/store/toolStyle/types';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolStyle: ToolStyleState;\n config: string;\n}\ntype ToolStyleKey = keyof ToolStyleState;\n\nconst getMarks = (type: string, t: any) => {\n const lineMarks = [\n { step: 1, value: '1' },\n { step: 2, value: '2' },\n { step: 3, value: '3' },\n { step: 4, value: '4' },\n { step: 5, value: '5' },\n ];\n const colorMarks = [\n { step: 1, value: 'Blue' },\n { step: 3, value: 'Cyan' },\n { step: 5, value: 'Green' },\n { step: 7, value: 'Yellow' },\n { step: 9, value: 'Pink' },\n ];\n const borderOpacityMarks = [\n { step: 1, value: '0.2' },\n { step: 3, value: '0.4' },\n { step: 5, value: '0.6' },\n { step: 7, value: '0.8' },\n { step: 9, value: '1.0' },\n ];\n\n const fillOpacityMarks = [\n { step: 1, value: '0' },\n { step: 3, value: '0.2' },\n { step: 5, value: '0.4' },\n { step: 7, value: '0.6' },\n { step: 9, value: '0.8' },\n ];\n let list: Array<{ step: number; value: string }> = [];\n const marks: {\n [a: number]: {\n style: {};\n label: any;\n };\n } = {};\n switch (type) {\n case 'width':\n list = lineMarks;\n break;\n case 'color':\n list = colorMarks;\n break;\n case 'borderOpacity':\n list = borderOpacityMarks;\n break;\n case 'fillOpacity':\n list = fillOpacityMarks;\n break;\n }\n list.forEach(({ step, value }) => {\n marks[step] = {\n style: { color: '#999999', fontSize: '12px' },\n label: <span>{t(value)}</span>,\n };\n });\n return marks;\n};\n\nconst getTitle = (title: string) => {\n switch (title) {\n case 'width':\n return 'BorderThickness';\n case 'color':\n return 'Color';\n case 'borderOpacity':\n return 'BorderOpacity';\n case 'fillOpacity':\n return 'FillOpacity';\n default:\n return '';\n }\n};\nconst getImage = (title: string) => {\n switch (title) {\n case 'width':\n return widthSvg;\n case 'color':\n return colorSvg;\n case 'borderOpacity':\n return borderOpacitySvg;\n case 'fillOpacity':\n return fillOpacitySvg;\n }\n};\nconst getDefaultValue = (value: string) => {\n switch (value) {\n case 'width':\n return 2;\n case 'color':\n return 1;\n case 'borderOpacity':\n return 9;\n case 'fillOpacity':\n return 9;\n }\n};\n\n/**\n * 判断使用那种样式 (slider的step中间为选中和step为选中)\n * @param info TToolStyleConfig\n */\nconst getStyleType = (info: string): boolean => ['width'].includes(info);\n\nconst ToolStyle = (props: IProps) => {\n const { toolStyle } = props;\n const { width, color, borderOpacity, fillOpacity } = toolStyle;\n const styleConfig = {\n width,\n color,\n borderOpacity,\n fillOpacity,\n };\n const { t } = useTranslation();\n\n // TODO - 样式标准的定义\n const annotationConfig: any = props.config;\n\n const changeToolStyle = (obj: { [key: string]: number }) => {\n store.dispatch(UpdateToolStyleConfig(obj));\n };\n\n return (\n <div className='toolStyle'>\n {Object.entries(styleConfig).map((item: any[]) => {\n const key: ToolStyleKey = item[0];\n // 判断是否需要 color 的使用,现在暂时默认不需要\n if (annotationConfig?.attributeConfigurable === true && key === 'color') {\n return null;\n }\n return (\n <div id={`style-${key}`} className='styleSlider' key={key}>\n <span className='title'>\n <img src={getImage(key)} className='icon' />\n {t(getTitle(key))}\n </span>\n <span className='slider'>\n <Slider\n tipFormatter={null}\n max={getStyleType(key) ? 5 : 10}\n min={getStyleType(key) ? 1 : 0}\n step={getStyleType(key) ? 1 : null}\n value={(toolStyle[key] ?? getDefaultValue(key)) as number}\n marks={getMarks(key, t)}\n onChange={(e: any) => changeToolStyle({ [key]: e })}\n />\n </span>\n </div>\n );\n })}\n </div>\n );\n};\nconst mapStateToProps = ({ toolStyle, annotation }: AppState) => ({\n toolStyle,\n config: annotation.toolInstance.config,\n});\nexport default connect(mapStateToProps)(ToolStyle);\n"],"names":["widthSvg","colorSvg","borderOpacitySvg","fillOpacitySvg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ToolStyle/index.tsx"],"sourcesContent":["import { Slider } from 'antd/es';\nimport React from 'react';\nimport widthSvg from '@/assets/toolStyle/icon_border.svg';\nimport colorSvg from '@/assets/toolStyle/icon_borderColor.svg';\nimport borderOpacitySvg from '@/assets/toolStyle/icon_opacityStroke.svg';\nimport fillOpacitySvg from '@/assets/toolStyle/icon_opacityFill.svg';\n\nimport { connect } from 'react-redux';\nimport { UpdateToolStyleConfig } from '@/store/toolStyle/actionCreators';\nimport { store } from '@/index';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { AppState } from '@/store';\nimport { ToolStyleState } from '@/store/toolStyle/types';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolStyle: ToolStyleState;\n config: string;\n}\ntype ToolStyleKey = keyof ToolStyleState;\n\nconst getMarks = (type: string, t: any) => {\n const lineMarks = [\n { step: 1, value: '1' },\n { step: 2, value: '2' },\n { step: 3, value: '3' },\n { step: 4, value: '4' },\n { step: 5, value: '5' },\n ];\n const colorMarks = [\n { step: 1, value: 'Blue' },\n { step: 3, value: 'Cyan' },\n { step: 5, value: 'Green' },\n { step: 7, value: 'Yellow' },\n { step: 9, value: 'Pink' },\n ];\n const borderOpacityMarks = [\n { step: 1, value: '0.2' },\n { step: 3, value: '0.4' },\n { step: 5, value: '0.6' },\n { step: 7, value: '0.8' },\n { step: 9, value: '1.0' },\n ];\n\n const fillOpacityMarks = [\n { step: 1, value: '0' },\n { step: 3, value: '0.2' },\n { step: 5, value: '0.4' },\n { step: 7, value: '0.6' },\n { step: 9, value: '0.8' },\n ];\n let list: Array<{ step: number; value: string }> = [];\n const marks: {\n [a: number]: {\n style: {};\n label: any;\n };\n } = {};\n switch (type) {\n case 'width':\n list = lineMarks;\n break;\n case 'color':\n list = colorMarks;\n break;\n case 'borderOpacity':\n list = borderOpacityMarks;\n break;\n case 'fillOpacity':\n list = fillOpacityMarks;\n break;\n }\n list.forEach(({ step, value }) => {\n marks[step] = {\n style: { color: '#999999', fontSize: '12px' },\n label: <span>{t(value)}</span>,\n };\n });\n return marks;\n};\n\nconst getTitle = (title: string) => {\n switch (title) {\n case 'width':\n return 'BorderThickness';\n case 'color':\n return 'Color';\n case 'borderOpacity':\n return 'BorderOpacity';\n case 'fillOpacity':\n return 'FillOpacity';\n default:\n return '';\n }\n};\nconst getImage = (title: string) => {\n switch (title) {\n case 'width':\n return widthSvg;\n case 'color':\n return colorSvg;\n case 'borderOpacity':\n return borderOpacitySvg;\n case 'fillOpacity':\n return fillOpacitySvg;\n }\n};\nconst getDefaultValue = (value: string) => {\n switch (value) {\n case 'width':\n return 2;\n case 'color':\n return 1;\n case 'borderOpacity':\n return 9;\n case 'fillOpacity':\n return 9;\n }\n};\n\n/**\n * 判断使用那种样式 (slider的step中间为选中和step为选中)\n * @param info TToolStyleConfig\n */\nconst getStyleType = (info: string): boolean => ['width'].includes(info);\n\nconst ToolStyle = (props: IProps) => {\n const { toolStyle } = props;\n const { width, color, borderOpacity, fillOpacity } = toolStyle;\n const styleConfig = {\n width,\n color,\n borderOpacity,\n fillOpacity,\n };\n const { t } = useTranslation();\n\n // TODO - 样式标准的定义\n const annotationConfig: any = props.config;\n\n const changeToolStyle = (obj: { [key: string]: number }) => {\n store.dispatch(UpdateToolStyleConfig(obj));\n };\n\n return (\n <div className='toolStyle'>\n {Object.entries(styleConfig).map((item: any[]) => {\n const key: ToolStyleKey = item[0];\n // 判断是否需要 color 的使用,现在暂时默认不需要\n if (annotationConfig?.attributeConfigurable === true && key === 'color') {\n return null;\n }\n return (\n <div id={`style-${key}`} className='styleSlider' key={key}>\n <span className='title'>\n <img src={getImage(key)} className='icon' />\n {t(getTitle(key))}\n </span>\n <span className='slider'>\n <Slider\n tipFormatter={null}\n max={getStyleType(key) ? 5 : 10}\n min={getStyleType(key) ? 1 : 0}\n step={getStyleType(key) ? 1 : null}\n value={(toolStyle[key] ?? getDefaultValue(key)) as number}\n marks={getMarks(key, t)}\n onChange={(e: any) => changeToolStyle({ [key]: e })}\n />\n </span>\n </div>\n );\n })}\n </div>\n );\n};\nconst mapStateToProps = ({ toolStyle, annotation }: AppState) => ({\n toolStyle,\n config: annotation.toolInstance.config,\n});\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(ToolStyle);\n"],"names":["widthSvg","colorSvg","borderOpacitySvg","fillOpacitySvg"],"mappings":";;;;;;;;;;;;AAqBA,MAAM,QAAA,GAAW,CAAC,IAAA,EAAc,CAAW,KAAA;AACzC,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,GAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,GAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,GAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,GAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,GAAA,CAAA;AAAA,GAAA,CAAA;AAEpB,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,MAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,MAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,OAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,QAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,MAAA,CAAA;AAAA,GAAA,CAAA;AAEpB,EAAA,MAAM,kBAAqB,GAAA;AAAA,IACzB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,GAAA,CAAA;AAGpB,EAAA,MAAM,gBAAmB,GAAA;AAAA,IACvB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,GAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,IAClB,CAAE,IAAM,EAAA,CAAA,EAAG,KAAO,EAAA,KAAA,CAAA;AAAA,GAAA,CAAA;AAEpB,EAAA,IAAI,IAA+C,GAAA,EAAA,CAAA;AACnD,EAAA,MAAM,KAKF,GAAA,EAAA,CAAA;AACJ,EAAQ,QAAA,IAAA;AAAA,IACD,KAAA,OAAA;AACH,MAAO,IAAA,GAAA,SAAA,CAAA;AACP,MAAA,MAAA;AAAA,IACG,KAAA,OAAA;AACH,MAAO,IAAA,GAAA,UAAA,CAAA;AACP,MAAA,MAAA;AAAA,IACG,KAAA,eAAA;AACH,MAAO,IAAA,GAAA,kBAAA,CAAA;AACP,MAAA,MAAA;AAAA,IACG,KAAA,aAAA;AACH,MAAO,IAAA,GAAA,gBAAA,CAAA;AACP,MAAA,MAAA;AAAA,GAAA;AAEJ,EAAA,IAAA,CAAK,OAAQ,CAAA,CAAC,CAAE,IAAA,EAAM,KAAY,CAAA,KAAA;AAChC,IAAA,KAAA,CAAM,IAAQ,CAAA,GAAA;AAAA,MACZ,KAAO,EAAA,CAAE,KAAO,EAAA,SAAA,EAAW,QAAU,EAAA,MAAA,CAAA;AAAA,MACrC,KAAO,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA,IAAA,EAAO,CAAE,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAGpB,EAAO,OAAA,KAAA,CAAA;AAAA,CAAA,CAAA;AAGT,MAAM,QAAA,GAAW,CAAC,KAAkB,KAAA;AAClC,EAAQ,QAAA,KAAA;AAAA,IACD,KAAA,OAAA;AACH,MAAO,OAAA,iBAAA,CAAA;AAAA,IACJ,KAAA,OAAA;AACH,MAAO,OAAA,OAAA,CAAA;AAAA,IACJ,KAAA,eAAA;AACH,MAAO,OAAA,eAAA,CAAA;AAAA,IACJ,KAAA,aAAA;AACH,MAAO,OAAA,aAAA,CAAA;AAAA,IAAA;AAEP,MAAO,OAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA,CAAA;AAGb,MAAM,QAAA,GAAW,CAAC,KAAkB,KAAA;AAClC,EAAQ,QAAA,KAAA;AAAA,IACD,KAAA,OAAA;AACH,MAAO,OAAAA,KAAA,CAAA;AAAA,IACJ,KAAA,OAAA;AACH,MAAO,OAAAC,KAAA,CAAA;AAAA,IACJ,KAAA,eAAA;AACH,MAAO,OAAAC,KAAA,CAAA;AAAA,IACJ,KAAA,aAAA;AACH,MAAO,OAAAC,GAAA,CAAA;AAAA,GAAA;AAAA,CAAA,CAAA;AAGb,MAAM,eAAA,GAAkB,CAAC,KAAkB,KAAA;AACzC,EAAQ,QAAA,KAAA;AAAA,IACD,KAAA,OAAA;AACH,MAAO,OAAA,CAAA,CAAA;AAAA,IACJ,KAAA,OAAA;AACH,MAAO,OAAA,CAAA,CAAA;AAAA,IACJ,KAAA,eAAA;AACH,MAAO,OAAA,CAAA,CAAA;AAAA,IACJ,KAAA,aAAA;AACH,MAAO,OAAA,CAAA,CAAA;AAAA,GAAA;AAAA,CAAA,CAAA;AAQb,MAAM,YAAe,GAAA,CAAC,IAA0B,KAAA,CAAC,SAAS,QAAS,CAAA,IAAA,CAAA,CAAA;AAEnE,MAAM,SAAA,GAAY,CAAC,KAAkB,KAAA;AACnC,EAAA,MAAM,CAAE,SAAc,CAAA,GAAA,KAAA,CAAA;AACtB,EAAA,MAAM,CAAE,KAAA,EAAO,KAAO,EAAA,aAAA,EAAe,WAAgB,CAAA,GAAA,SAAA,CAAA;AACrD,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB,KAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,GAAA,CAAA;AAEF,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAGd,EAAA,MAAM,mBAAwB,KAAM,CAAA,MAAA,CAAA;AAEpC,EAAM,MAAA,eAAA,GAAkB,CAAC,GAAmC,KAAA;AAC1D,IAAA,KAAA,CAAM,SAAS,qBAAsB,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGvC,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,WAAA;AAAA,GAAA,EACZ,MAAO,CAAA,OAAA,CAAQ,WAAa,CAAA,CAAA,GAAA,CAAI,CAAC,IAAgB,KAAA;AAlJxD,IAAA,IAAA,EAAA,CAAA;AAmJQ,IAAA,MAAM,MAAoB,IAAK,CAAA,CAAA,CAAA,CAAA;AAE/B,IAAA,IAAI,CAAkB,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,qBAAA,MAA0B,IAAQ,IAAA,GAAA,KAAQ,OAAS,EAAA;AACvE,MAAO,OAAA,IAAA,CAAA;AAAA,KAAA;AAET,IAAA,2CACG,KAAD,EAAA;AAAA,MAAK,IAAI,CAAS,MAAA,EAAA,GAAA,CAAA,CAAA;AAAA,MAAO,SAAU,EAAA,aAAA;AAAA,MAAc,GAAA;AAAA,KAAA,sCAC9C,MAAD,EAAA;AAAA,MAAM,SAAU,EAAA,OAAA;AAAA,KAAA,sCACb,KAAD,EAAA;AAAA,MAAK,KAAK,QAAS,CAAA,GAAA,CAAA;AAAA,MAAM,SAAU,EAAA,MAAA;AAAA,KAAA,CAAA,EAClC,CAAE,CAAA,QAAA,CAAS,GAEd,CAAA,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAA,MAAM,SAAU,EAAA,QAAA;AAAA,KAAA,sCACb,MAAD,EAAA;AAAA,MACE,YAAc,EAAA,IAAA;AAAA,MACd,GAAA,EAAK,YAAa,CAAA,GAAA,CAAA,GAAO,CAAI,GAAA,EAAA;AAAA,MAC7B,GAAA,EAAK,YAAa,CAAA,GAAA,CAAA,GAAO,CAAI,GAAA,CAAA;AAAA,MAC7B,IAAA,EAAM,YAAa,CAAA,GAAA,CAAA,GAAO,CAAI,GAAA,IAAA;AAAA,MAC9B,KAAQ,EAAA,CAAA,EAAA,GAAA,SAAA,CAAU,GAAV,CAAA,KAAA,IAAA,GAAA,EAAA,GAAkB,eAAgB,CAAA,GAAA,CAAA;AAAA,MAC1C,KAAA,EAAO,SAAS,GAAK,EAAA,CAAA,CAAA;AAAA,MACrB,QAAU,EAAA,CAAC,CAAW,KAAA,eAAA,CAAgB,EAAG,GAAM,GAAA,CAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAS/D,MAAM,eAAkB,GAAA,CAAC,CAAE,SAAA,EAAW,UAA4B,CAAA,MAAA;AAAA,EAChE,SAAA;AAAA,EACA,MAAA,EAAQ,WAAW,YAAa,CAAA,MAAA;AAAA,CAAA,CAAA,CAAA;AAElC,kBAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAAmB,CAAA,CAAA,CAAA,SAAA,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{prefix as _}from"../../../constant/index.js";import{EToolName as o}from"../../../data/enums/ToolType.js";import P from"../../../utils/StepUtils.js";import{Collapse as m}from"antd/es";import e from"react";import{useTranslation as h}from"react-i18next";import L from"./AnnotationText/index.js";import O from"./ClearIcon/index.js";import R,{PointCloudOperation as x}from"./GeneralOperation/index.js";import w from"./ImgAttributeInfo/index.js";import z from"./SwitchAttributeList/index.js";import s,{expandIconFuc as N}from"./TagSidebar/index.js";import g from"./TextToolSidebar/index.js";import I from"./PointCloudToolSidebar/index.js";import B from"./ToolStyle/index.js";import{cTool as G}from"@labelbee/lb-annotation";import K from"./ScribbleSidebar/index.js";import{ToolIcons as U}from"./ToolIcons.js";import{useSelector as V}from"../../../store/ctx.js";const{EVideoToolName:k,EPointCloudName:F}=G,{Panel:j}=m,t=`${_}-sidebar`,q=({sider:r})=>{const d=V(l=>P.getCurrentStepInfo(l.annotation.step,l.annotation.stepList)),n=d==null?void 0:d.tool,{t:u}=h();if(!n)return null;const v=l=>{const S=e.createElement(B,null);return e.createElement(j,{header:u("Style"),className:"panel",key:l},S)},p=e.createElement(U,{toolName:n,onChange:()=>{}}),a=e.createElement(z,null),f=e.createElement(L,null),E=e.createElement(m,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:N},v("1")),b=e.createElement(m,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:N},e.createElement(j,{header:e.createElement("div",null,u("Adjust"),e.createElement(O,null)),className:"panel",key:"imgAttribute"},e.createElement(w,null))),i=e.createElement(R,null),C=e.createElement(s,null),$=e.createElement(g,null),T=e.createElement(K,{onChange:(l,S)=>{}}),c=e.createElement("div",{className:`${t}__horizontal`}),A=e.createElement(I,null),y=e.createElement(x,null);return r?typeof r=="function"?e.createElement("div",{className:`${t}`},r({toolIcon:p,attributeList:a,annotationText:f,toolStyle:E,imageAttributeInfo:b,operation:i,tagToolSideBar:C,textToolSideBar:$,horizontal:c,pointCloudToolSidebar:A,pointCloudOperation:y,scribbleSidebar:T})):r:[o.Rect,o.Point,o.Line,o.Rect,o.Polygon].includes(n)?e.createElement("div",{className:`${t}`},p,c,a,f,c,e.createElement("div",{className:`${t}__content`},E,b),i):n===o.Tag?e.createElement("div",{className:`${t}`},e.createElement(s,null)):n===k.VideoTagTool?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(s,null)),i):n===o.Text?e.createElement("div",{className:`${t}`},e.createElement(g,null)):n===F.PointCloud?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(I,null)),e.createElement(x,null)):n===o.ScribbleTool?e.createElement("div",{className:`${t}`},T,a):null};export{q as default,t as sidebarCls};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/views/MainView/sidebar/index.tsx"],"sourcesContent":["import lineASvg from '@/assets/annotation/lineTool/icon_line_a.svg';\nimport pointASvg from '@/assets/annotation/pointTool/icon_point_a.svg';\nimport iconPolygonPatternASvg from '@/assets/annotation/polygonTool/icon_polygon_a.svg';\nimport iconRectPatternSvg from '@/assets/annotation/rectTool/icon_rectPattern.svg';\nimport { prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { AppState } from '@/store';\nimport { Sider } from '@/types/main';\nimport StepUtils from '@/utils/StepUtils';\nimport { Collapse, Row } from 'antd/es';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport AnnotationText from './AnnotationText';\nimport ClearIcon from './ClearIcon';\nimport GeneralOperation from './GeneralOperation';\nimport ImgAttributeInfo from './ImgAttributeInfo';\nimport SwitchAttributeList from './SwitchAttributeList';\nimport TagSidebar, { expandIconFuc } from './TagSidebar';\nimport TextToolSidebar from './TextToolSidebar';\nimport ToolStyle from './ToolStyle';\nimport { cTool } from '@labelbee/lb-annotation';\n\nconst { EVideoToolName } = cTool;\n\nconst { Panel } = Collapse;\n\ninterface IProps {\n toolName?: EToolName;\n sider?: Sider;\n}\n\nconst toolList = [\n {\n toolName: EToolName.Rect,\n commonSvg: iconRectPatternSvg,\n selectedSvg: iconRectPatternSvg,\n },\n // 多边形工具\n {\n toolName: EToolName.Polygon,\n commonSvg: iconPolygonPatternASvg,\n selectedSvg: iconPolygonPatternASvg,\n },\n {\n toolName: EToolName.Line,\n commonSvg: lineASvg,\n selectedSvg: lineASvg,\n pattern: EToolName.Line,\n },\n {\n toolName: EToolName.Point,\n commonSvg: pointASvg,\n selectedSvg: pointASvg,\n pattern: 'drawPoint',\n },\n];\nconst sidebarCls = `${prefix}-sidebar`;\nconst Sidebar: React.FC<IProps> = ({ sider }) => {\n const stepInfo = useSelector((state: AppState) =>\n StepUtils.getCurrentStepInfo(state.annotation.step, state.annotation.stepList),\n );\n const toolName = stepInfo?.tool;\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n const renderTool = toolList?.find((item) => item?.toolName === toolName);\n\n /**\n * 样式面板, 包含透明度、线框、颜色\n * @param key 虚拟dom的key\n */\n const renderStylePanel = (key: string) => {\n const ToolStyleComponent = <ToolStyle />;\n return (\n <Panel header={t('Style')} className='panel' key={key}>\n {ToolStyleComponent}\n </Panel>\n );\n };\n\n const toolIcon = (\n <div className={`${sidebarCls}__level`}>\n <Row className={`${sidebarCls}__toolsOption`}>\n {renderTool && (\n <a>\n <img className={`${sidebarCls}__singleTool`} src={renderTool?.selectedSvg} />\n </a>\n )}\n </Row>\n </div>\n );\n\n const attributeList = <SwitchAttributeList />;\n\n const annotationText = <AnnotationText />;\n\n const toolStyle = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n {renderStylePanel('1')}\n </Collapse>\n );\n\n const imageAttributeInfo = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n <Panel\n header={\n <div>\n {t('Adjust')}\n\n <ClearIcon />\n </div>\n }\n className='panel'\n key='imgAttribute'\n >\n <ImgAttributeInfo />\n </Panel>\n </Collapse>\n );\n\n const operation = <GeneralOperation />;\n\n const tagToolSideBar = <TagSidebar />;\n\n const textToolSideBar = <TextToolSidebar />;\n\n const horizontal = <div className={`${sidebarCls}__horizontal`} />;\n\n if (sider) {\n if (typeof sider === 'function') {\n return (\n <div className={`${sidebarCls}`}>\n {sider({\n toolIcon,\n attributeList,\n annotationText,\n toolStyle,\n imageAttributeInfo,\n operation,\n tagToolSideBar,\n textToolSideBar,\n horizontal,\n })}\n </div>\n );\n } else {\n return sider;\n }\n }\n\n if (\n (\n [\n EToolName.Rect,\n EToolName.Point,\n EToolName.Line,\n EToolName.Rect,\n EToolName.Polygon,\n ] as string[]\n ).includes(toolName)\n ) {\n return (\n <div className={`${sidebarCls}`}>\n {toolIcon}\n {horizontal}\n {attributeList}\n {annotationText}\n {horizontal}\n <div className={`${sidebarCls}__content`}>\n {toolStyle}\n {imageAttributeInfo}\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Tag) {\n return (\n <div className={`${sidebarCls}`}>\n <TagSidebar />\n </div>\n );\n }\n\n if (toolName === EVideoToolName.VideoTagTool) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <TagSidebar />\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Text) {\n return (\n <div className={`${sidebarCls}`}>\n <TextToolSidebar />\n </div>\n );\n }\n\n return null;\n};\n\nexport default Sidebar;\n"],"names":["iconRectPatternSvg","iconPolygonPatternASvg","lineASvg","pointASvg","ClearIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/views/MainView/sidebar/index.tsx"],"sourcesContent":["import { prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { AppState } from '@/store';\nimport { Sider } from '@/types/main';\nimport StepUtils from '@/utils/StepUtils';\nimport { Collapse } from 'antd/es';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AnnotationText from './AnnotationText';\nimport ClearIcon from './ClearIcon';\nimport GeneralOperation, { PointCloudOperation } from './GeneralOperation';\nimport ImgAttributeInfo from './ImgAttributeInfo';\nimport SwitchAttributeList from './SwitchAttributeList';\nimport TagSidebar, { expandIconFuc } from './TagSidebar';\nimport TextToolSidebar from './TextToolSidebar';\nimport PointCloudToolSidebar from './PointCloudToolSidebar';\nimport ToolStyle from './ToolStyle';\nimport { cTool } from '@labelbee/lb-annotation';\nimport ScribbleSidebar from './ScribbleSidebar';\nimport { ToolIcons } from './ToolIcons';\nimport { useSelector } from '@/store/ctx';\n\nconst { EVideoToolName, EPointCloudName } = cTool;\n\nconst { Panel } = Collapse;\n\ninterface IProps {\n toolName?: EToolName;\n sider?: Sider;\n}\n\nexport const sidebarCls = `${prefix}-sidebar`;\nconst Sidebar: React.FC<IProps> = ({ sider }) => {\n const stepInfo = useSelector((state: AppState) =>\n StepUtils.getCurrentStepInfo(state.annotation.step, state.annotation.stepList),\n );\n const toolName = stepInfo?.tool;\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n /**\n * 样式面板, 包含透明度、线框、颜色\n * @param key 虚拟dom的key\n */\n const renderStylePanel = (key: string) => {\n const ToolStyleComponent = <ToolStyle />;\n return (\n <Panel header={t('Style')} className='panel' key={key}>\n {ToolStyleComponent}\n </Panel>\n );\n };\n\n // onChange is empty by default.\n const toolIcon = <ToolIcons toolName={toolName} onChange={() => {}} />;\n const attributeList = <SwitchAttributeList />;\n\n const annotationText = <AnnotationText />;\n\n const toolStyle = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n {renderStylePanel('1')}\n </Collapse>\n );\n\n const imageAttributeInfo = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n <Panel\n header={\n <div>\n {t('Adjust')}\n\n <ClearIcon />\n </div>\n }\n className='panel'\n key='imgAttribute'\n >\n <ImgAttributeInfo />\n </Panel>\n </Collapse>\n );\n\n const operation = <GeneralOperation />;\n\n const tagToolSideBar = <TagSidebar />;\n\n const textToolSideBar = <TextToolSidebar />;\n\n const scribbleSidebar = (\n <ScribbleSidebar\n onChange={(t, i) => {\n // 接收\n }}\n />\n );\n\n const horizontal = <div className={`${sidebarCls}__horizontal`} />;\n\n const pointCloudToolSidebar = <PointCloudToolSidebar />;\n\n const pointCloudOperation = <PointCloudOperation />;\n\n if (sider) {\n if (typeof sider === 'function') {\n return (\n <div className={`${sidebarCls}`}>\n {sider({\n toolIcon,\n attributeList,\n annotationText,\n toolStyle,\n imageAttributeInfo,\n operation,\n tagToolSideBar,\n textToolSideBar,\n horizontal,\n\n pointCloudToolSidebar,\n pointCloudOperation,\n scribbleSidebar,\n })}\n </div>\n );\n } else {\n return sider;\n }\n }\n\n if (\n (\n [\n EToolName.Rect,\n EToolName.Point,\n EToolName.Line,\n EToolName.Rect,\n EToolName.Polygon,\n ] as string[]\n ).includes(toolName)\n ) {\n return (\n <div className={`${sidebarCls}`}>\n {toolIcon}\n {horizontal}\n {attributeList}\n {annotationText}\n {horizontal}\n <div className={`${sidebarCls}__content`}>\n {toolStyle}\n {imageAttributeInfo}\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Tag) {\n return (\n <div className={`${sidebarCls}`}>\n <TagSidebar />\n </div>\n );\n }\n\n if (toolName === EVideoToolName.VideoTagTool) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <TagSidebar />\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Text) {\n return (\n <div className={`${sidebarCls}`}>\n <TextToolSidebar />\n </div>\n );\n }\n\n if (toolName === EPointCloudName.PointCloud) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <PointCloudToolSidebar />\n </div>\n <PointCloudOperation />\n </div>\n );\n }\n\n if (toolName === EToolName.ScribbleTool) {\n return (\n <div className={`${sidebarCls}`}>\n {scribbleSidebar}\n {attributeList}\n </div>\n );\n }\n\n return null;\n};\n\nexport default Sidebar;\n"],"names":["ClearIcon"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Popover as
|
|
1
|
+
import{Popover as b}from"antd/es";import e,{useState as S}from"react";import j from"../../../../../assets/annotation/toolHotKeyIcon/icon_kj1.svg.js";import k from"../../../../../assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js";import{EToolName as l}from"../../../../../data/enums/ToolType.js";import I from"./rectToolShortCutTable/index.js";import R from"./point/index.js";import w from"./polygon/index.js";import H from"./line/index.js";import N from"./tag/index.js";import _ from"./text/index.js";import M from"./videoTag/index.js";import L from"./pointCloud/index.js";import{footerCls as K}from"../../index.js";import{useTranslation as P}from"react-i18next";import{cTool as V}from"@labelbee/lb-annotation";const{EVideoToolName:W,EPointCloudName:$}=V,g={[l.Rect]:I,[l.Tag]:N,[l.Point]:R,[l.Polygon]:w,[l.Line]:H,[l.Text]:_,[W.VideoTagTool]:M,[$.PointCloud]:L},A=({icon:r})=>typeof r=="string"?e.createElement("img",{width:16,height:16,src:r}):r||null,B=({style:r,title:u,toolName:c})=>{var y;const[h,m]=S(!1),{t:p}=P();if(!c)return null;const d={width:320,display:"flex",justifyContent:"space-between",margin:16},a={display:"block",padding:"0 3px",minWidth:"20px",marginRight:"3px",border:"1px solid rgba(204,204,204,1)",verticalAlign:"middle",fontSize:"12px",textAlign:"center"},f=(t,s)=>e.createElement("div",{style:d,key:s},e.createElement("span",{style:{display:"flex",alignItems:"center"}},e.createElement(A,{icon:t.icon}),e.createElement("span",{style:{marginLeft:t.icon?16:0}},p(t.name))),e.createElement("span",{style:{display:"flex",alignItems:"center"}},t.noticeInfo&&e.createElement("span",{style:{marginRight:"5px",color:"#CCCCCC"}},p(t.noticeInfo)),T(t.shortCut,t.shortCutUseHtml,t.linkSymbol))),T=(t,s=!1,x="+")=>{if(!t)return null;const v=t.map((o,n)=>{const i={display:"flex",alignItems:"center"};return s?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a,dangerouslySetInnerHTML:{__html:o}})):n<t.length-1?typeof o=="number"?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o),e.createElement("span",{style:{marginRight:"3px"}},"~")):(o==null?void 0:o.startsWith("data"))?e.createElement("span",{key:n,style:i},e.createElement("span",{className:"shortCutButton",style:{marginRight:"3px"}},e.createElement("img",{width:16,height:23,src:o})),e.createElement("span",{style:{marginRight:"3px"}},"+")):e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o),e.createElement("span",{style:{marginRight:"3px"}},x)):typeof o=="number"?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o)):(o==null?void 0:o.startsWith("data"))?e.createElement("span",{className:"shortCutButton",key:n,style:{marginRight:"3px"}},e.createElement("img",{width:16,height:23,src:o})):e.createElement("span",{style:a,key:n},o)});return e.createElement("div",{style:{display:"flex",justifyContent:"space-around",alignItems:"center"}},v)},E=e.createElement("div",{className:`${K}__hotkey-content`},(y=g[c])==null?void 0:y.map((t,s)=>f(t,s))),C=r||{width:100};return g[c]?e.createElement(b,{placement:"topLeft",content:E,onMouseMove:()=>m(!0),onMouseLeave:()=>{m(!1)},overlayClassName:"tool-hotkeys-popover"},e.createElement("div",{className:"shortCutTitle",onMouseMove:()=>m(!0),onMouseLeave:()=>m(!1),style:C},u!=null?u:e.createElement("a",{className:"svg"},e.createElement("img",{src:h?k:j,width:15,height:13,style:{marginRight:"5px"}}),p("Hotkeys")))):null};export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/index.tsx"],"sourcesContent":["import { Popover } from 'antd/es';\nimport _ from 'lodash';\nimport React, { useState } from 'react';\n\nimport hotKeySvg from '@/assets/annotation/toolHotKeyIcon/icon_kj1.svg';\nimport hotKeyHoverSvg from '@/assets/annotation/toolHotKeyIcon/icon_kj_h.svg';\nimport { EToolName } from '@/data/enums/ToolType';\nimport rectToolShortcutTable from './rectToolShortCutTable';\nimport pointToolShortcutTable from './point';\nimport polygonToolShortcutTable from './polygon';\nimport lineToolShortCutTable from './line';\nimport tagToolSingleShortCutTable from './tag';\nimport textToolShortCutTable from './text';\nimport videoToolShortCutTable from './videoTag';\n\nimport { footerCls } from '../../index';\nimport { useTranslation } from 'react-i18next';\nimport { cTool } from '@labelbee/lb-annotation';\n\nconst { EVideoToolName } = cTool;\n\ninterface IProps {\n style?: any;\n title?: React.ReactElement<any>;\n toolName?: string;\n}\n\nconst shortCutTable: any = {\n [EToolName.Rect]: rectToolShortcutTable,\n [EToolName.Tag]: tagToolSingleShortCutTable,\n [EToolName.Point]: pointToolShortcutTable,\n [EToolName.Polygon]: polygonToolShortcutTable,\n [EToolName.Line]: lineToolShortCutTable,\n [EToolName.Text]: textToolShortCutTable,\n [EVideoToolName.VideoTagTool]: videoToolShortCutTable,\n};\n\nconst ToolHotKey: React.FC<IProps> = ({ style, title, toolName }) => {\n const [svgFlag, setFlag] = useState(false);\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n const renderImg = (info: Element | string) => {\n if (typeof info === 'string') {\n return <img width={16} height={16} src={info} style={iconStyle} />;\n }\n return info;\n };\n const shortCutStyle = {\n width: 320,\n display: 'flex',\n justifyContent: 'space-between',\n margin: '23px 21px',\n };\n\n const iconStyle = {\n marginRight: 10,\n };\n\n const shortCutNameStyles: React.CSSProperties = {\n display: 'block',\n padding: '0 3px',\n minWidth: '20px',\n marginRight: '3px',\n border: '1px solid rgba(204,204,204,1)',\n verticalAlign: 'middle',\n fontSize: '12px',\n textAlign: 'center',\n };\n\n const setHotKey = (info: any, index: number) => (\n <div style={shortCutStyle} key={index}>\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {renderImg(info.icon)}\n {t(info.name)}\n </span>\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {info.noticeInfo && (\n <span style={{ marginRight: '5px', color: '#CCCCCC' }}>{t(info.noticeInfo)}</span>\n )}\n {setSVG(info.shortCut, info.shortCutUseHtml, info.linkSymbol)}\n </span>\n </div>\n );\n\n const setSVG = (list: any[], useDangerInnerHtml = false, linkSymbol?: string) => {\n const listDom = list.map((item, index) => {\n if (useDangerInnerHtml) {\n return (\n <span key={index} style={{ display: 'flex' }}>\n <span style={shortCutNameStyles} dangerouslySetInnerHTML={{ __html: item }} />\n </span>\n );\n }\n\n if (index < list.length - 1) {\n if (typeof item === 'number') {\n return (\n <span key={index} style={{ display: 'flex' }}>\n <span style={shortCutNameStyles}>{item}</span>\n <span style={{ marginRight: '3px' }}>~</span>\n </span>\n );\n }\n\n if (item?.startsWith('data')) {\n return (\n <span key={index} style={{ display: 'flex' }}>\n <span className='shortCutButton' style={{ marginRight: '3px' }}>\n <img width={16} height={23} src={item} />\n </span>\n <span style={{ marginRight: '3px' }}>+</span>\n </span>\n );\n }\n return (\n <span key={index} style={{ display: 'flex' }}>\n <span style={shortCutNameStyles}>{item}</span>\n <span style={{ marginRight: '3px' }}>{linkSymbol || '+'}</span>\n </span>\n );\n }\n if (typeof item === 'number') {\n return (\n <span key={index} style={{ display: 'flex' }}>\n <span style={shortCutNameStyles}>{item}</span>\n </span>\n );\n }\n if (item?.startsWith('data')) {\n return (\n <span className='shortCutButton' key={index} style={{ marginRight: '3px' }}>\n <img width={16} height={23} src={item} />\n </span>\n );\n }\n return (\n <span style={shortCutNameStyles} key={index}>\n {item}\n </span>\n );\n });\n return (\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n }}\n >\n {listDom}\n </div>\n );\n };\n\n const content = (\n <div className={`${footerCls}__hotkey-content`}>\n {shortCutTable[toolName]?.map((info: any, index: number) => setHotKey(info, index))}\n </div>\n );\n const containerStyle = style || { width: 100 };\n\n // 不存在对应的工具则不展示的快捷键\n if (!shortCutTable[toolName]) {\n return null;\n }\n\n return (\n // @ts-ignore\n <Popover\n placement='topLeft'\n content={content}\n // @ts-ignore\n onMouseMove={() => setFlag(true)}\n onMouseLeave={() => {\n setFlag(false);\n }}\n overlayClassName='tool-hotkeys-popover'\n // visible={svgFlag}\n >\n <div\n className='shortCutTitle'\n onMouseMove={() => setFlag(true)}\n onMouseLeave={() => setFlag(false)}\n style={containerStyle}\n >\n {title ?? (\n <a className='svg'>\n <img\n src={svgFlag ? hotKeyHoverSvg : hotKeySvg}\n width={15}\n height={13}\n style={{ marginRight: '5px' }}\n />\n\n {t('Hotkeys')}\n </a>\n )}\n </div>\n </Popover>\n );\n};\n\nexport default ToolHotKey;\n"],"names":["pointToolShortcutTable","polygonToolShortcutTable","videoToolShortCutTable","hotKeyHoverSvg","hotKeySvg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/index.tsx"],"sourcesContent":["import { Popover } from 'antd/es';\nimport _ from 'lodash';\nimport React, { useState } from 'react';\n\nimport hotKeySvg from '@/assets/annotation/toolHotKeyIcon/icon_kj1.svg';\nimport hotKeyHoverSvg from '@/assets/annotation/toolHotKeyIcon/icon_kj_h.svg';\nimport { EToolName } from '@/data/enums/ToolType';\nimport rectToolShortcutTable from './rectToolShortCutTable';\nimport pointToolShortcutTable from './point';\nimport polygonToolShortcutTable from './polygon';\nimport lineToolShortCutTable from './line';\nimport tagToolSingleShortCutTable from './tag';\nimport textToolShortCutTable from './text';\nimport videoToolShortCutTable from './videoTag';\nimport pointCloudShortCutTable from './pointCloud';\n\nimport { footerCls } from '../../index';\nimport { useTranslation } from 'react-i18next';\nimport { cTool } from '@labelbee/lb-annotation';\n\nconst { EVideoToolName, EPointCloudName } = cTool;\n\ninterface IProps {\n style?: any;\n title?: React.ReactElement<any>;\n toolName?: string;\n}\n\nconst shortCutTable: any = {\n [EToolName.Rect]: rectToolShortcutTable,\n [EToolName.Tag]: tagToolSingleShortCutTable,\n [EToolName.Point]: pointToolShortcutTable,\n [EToolName.Polygon]: polygonToolShortcutTable,\n [EToolName.Line]: lineToolShortCutTable,\n [EToolName.Text]: textToolShortCutTable,\n [EVideoToolName.VideoTagTool]: videoToolShortCutTable,\n [EPointCloudName.PointCloud]: pointCloudShortCutTable,\n};\n\nconst ToolHotKeyIcon = ({ icon }: { icon: React.ReactElement | string }) => {\n if (typeof icon === 'string') {\n return <img width={16} height={16} src={icon} />;\n }\n\n if (icon) {\n return icon;\n }\n\n return null;\n};\n\nconst ToolHotKey: React.FC<IProps> = ({ style, title, toolName }) => {\n const [svgFlag, setFlag] = useState(false);\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n const shortCutStyle = {\n width: 320,\n display: 'flex',\n justifyContent: 'space-between',\n margin: 16,\n };\n\n const shortCutNameStyles: React.CSSProperties = {\n display: 'block',\n padding: '0 3px',\n minWidth: '20px',\n marginRight: '3px',\n border: '1px solid rgba(204,204,204,1)',\n verticalAlign: 'middle',\n fontSize: '12px',\n textAlign: 'center',\n };\n\n const setHotKey = (info: any, index: number) => (\n <div style={shortCutStyle} key={index}>\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <ToolHotKeyIcon icon={info.icon} />\n <span style={{ marginLeft: info.icon ? 16 : 0 }}>{t(info.name)}</span>\n </span>\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {info.noticeInfo && (\n <span style={{ marginRight: '5px', color: '#CCCCCC' }}>{t(info.noticeInfo)}</span>\n )}\n {setSVG(info.shortCut, info.shortCutUseHtml, info.linkSymbol)}\n </span>\n </div>\n );\n\n const setSVG = (list: any[], useDangerInnerHtml = false, linkSymbol = '+') => {\n if (!list) {\n return null;\n }\n const listDom = list.map((item, index) => {\n const wrapperStyle = { display: 'flex', alignItems: 'center' };\n\n if (useDangerInnerHtml) {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles} dangerouslySetInnerHTML={{ __html: item }} />\n </span>\n );\n }\n\n if (index < list.length - 1) {\n if (typeof item === 'number') {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n <span style={{ marginRight: '3px' }}>~</span>\n </span>\n );\n }\n\n if (item?.startsWith('data')) {\n return (\n <span key={index} style={wrapperStyle}>\n <span className='shortCutButton' style={{ marginRight: '3px' }}>\n <img width={16} height={23} src={item} />\n </span>\n <span style={{ marginRight: '3px' }}>+</span>\n </span>\n );\n }\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n <span style={{ marginRight: '3px' }}>{linkSymbol}</span>\n </span>\n );\n }\n if (typeof item === 'number') {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n </span>\n );\n }\n if (item?.startsWith('data')) {\n return (\n <span className='shortCutButton' key={index} style={{ marginRight: '3px' }}>\n <img width={16} height={23} src={item} />\n </span>\n );\n }\n return (\n <span style={shortCutNameStyles} key={index}>\n {item}\n </span>\n );\n });\n return (\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n }}\n >\n {listDom}\n </div>\n );\n };\n\n const content = (\n <div className={`${footerCls}__hotkey-content`}>\n {shortCutTable[toolName]?.map((info: any, index: number) => setHotKey(info, index))}\n </div>\n );\n const containerStyle = style || { width: 100 };\n\n // 不存在对应的工具则不展示的快捷键\n if (!shortCutTable[toolName]) {\n return null;\n }\n\n return (\n // @ts-ignore\n <Popover\n placement='topLeft'\n content={content}\n // @ts-ignore\n onMouseMove={() => setFlag(true)}\n onMouseLeave={() => {\n setFlag(false);\n }}\n overlayClassName='tool-hotkeys-popover'\n // visible={svgFlag}\n >\n <div\n className='shortCutTitle'\n onMouseMove={() => setFlag(true)}\n onMouseLeave={() => setFlag(false)}\n style={containerStyle}\n >\n {title ?? (\n <a className='svg'>\n <img\n src={svgFlag ? hotKeyHoverSvg : hotKeySvg}\n width={15}\n height={13}\n style={{ marginRight: '5px' }}\n />\n\n {t('Hotkeys')}\n </a>\n )}\n </div>\n </Popover>\n );\n};\n\nexport default ToolHotKey;\n"],"names":["pointToolShortcutTable","polygonToolShortcutTable","videoToolShortCutTable","hotKeyHoverSvg","hotKeySvg"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,MAAM,CAAE,gBAAgB,eAAoB,CAAA,GAAA,KAAA,CAAA;AAQ5C,MAAM,aAAqB,GAAA;AAAA,EAAA,CACxB,UAAU,IAAO,GAAA,qBAAA;AAAA,EAAA,CACjB,UAAU,GAAM,GAAA,0BAAA;AAAA,EAAA,CAChB,UAAU,KAAQ,GAAAA,sBAAA;AAAA,EAAA,CAClB,UAAU,OAAU,GAAAC,wBAAA;AAAA,EAAA,CACpB,UAAU,IAAO,GAAA,qBAAA;AAAA,EAAA,CACjB,UAAU,IAAO,GAAA,qBAAA;AAAA,EAAA,CACjB,eAAe,YAAe,GAAAC,yBAAA;AAAA,EAAA,CAC9B,gBAAgB,UAAa,GAAA,uBAAA;AAAA,CAAA,CAAA;AAGhC,MAAM,cAAA,GAAiB,CAAC,CAAE,IAAkD,CAAA,KAAA;AAC1E,EAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,IAAA,2CAAQ,KAAD,EAAA;AAAA,MAAK,KAAO,EAAA,EAAA;AAAA,MAAI,MAAQ,EAAA,EAAA;AAAA,MAAI,GAAK,EAAA,IAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAG1C,EAAA,IAAI,IAAM,EAAA;AACR,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAO,OAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAGT,MAAM,UAA+B,GAAA,CAAC,CAAE,KAAA,EAAO,OAAO,QAAe,CAAA,KAAA;AAnDrE,EAAA,IAAA,EAAA,CAAA;AAoDE,EAAM,MAAA,CAAC,OAAS,EAAA,OAAA,CAAA,GAAW,QAAS,CAAA,KAAA,CAAA,CAAA;AACpC,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,MAAM,aAAgB,GAAA;AAAA,IACpB,KAAO,EAAA,GAAA;AAAA,IACP,OAAS,EAAA,MAAA;AAAA,IACT,cAAgB,EAAA,eAAA;AAAA,IAChB,MAAQ,EAAA,EAAA;AAAA,GAAA,CAAA;AAGV,EAAA,MAAM,kBAA0C,GAAA;AAAA,IAC9C,OAAS,EAAA,OAAA;AAAA,IACT,OAAS,EAAA,OAAA;AAAA,IACT,QAAU,EAAA,MAAA;AAAA,IACV,WAAa,EAAA,KAAA;AAAA,IACb,MAAQ,EAAA,+BAAA;AAAA,IACR,aAAe,EAAA,QAAA;AAAA,IACf,QAAU,EAAA,MAAA;AAAA,IACV,SAAW,EAAA,QAAA;AAAA,GAAA,CAAA;AAGb,EAAA,MAAM,SAAY,GAAA,CAAC,IAAW,EAAA,KAAA,yCAC3B,KAAD,EAAA;AAAA,IAAK,KAAO,EAAA,aAAA;AAAA,IAAe,GAAK,EAAA,KAAA;AAAA,GAAA,sCAC7B,MAAD,EAAA;AAAA,IAAM,KAAO,EAAA,CAAE,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACzC,cAAD,EAAA;AAAA,IAAgB,MAAM,IAAK,CAAA,IAAA;AAAA,GAAA,CAAA,sCAC1B,MAAD,EAAA;AAAA,IAAM,KAAO,EAAA,CAAE,UAAY,EAAA,IAAA,CAAK,OAAO,EAAK,GAAA,CAAA,CAAA;AAAA,GAAA,EAAM,CAAE,CAAA,IAAA,CAAK,IAE3D,CAAA,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAA,IAAM,KAAO,EAAA,CAAE,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,CAAA;AAAA,GACzC,EAAA,IAAA,CAAK,UACJ,oBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAA,IAAM,KAAO,EAAA,CAAE,WAAa,EAAA,KAAA,EAAO,KAAO,EAAA,SAAA,CAAA;AAAA,GAAc,EAAA,CAAA,CAAE,KAAK,UAEhE,CAAA,CAAA,EAAA,MAAA,CAAO,KAAK,QAAU,EAAA,IAAA,CAAK,iBAAiB,IAAK,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AAKxD,EAAA,MAAM,SAAS,CAAC,IAAA,EAAa,kBAAqB,GAAA,KAAA,EAAO,aAAa,GAAQ,KAAA;AAC5E,IAAA,IAAI,CAAC,IAAM,EAAA;AACT,MAAO,OAAA,IAAA,CAAA;AAAA,KAAA;AAET,IAAA,MAAM,OAAU,GAAA,IAAA,CAAK,GAAI,CAAA,CAAC,MAAM,KAAU,KAAA;AACxC,MAAA,MAAM,YAAe,GAAA,CAAE,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,CAAA,CAAA;AAEpD,MAAA,IAAI,kBAAoB,EAAA;AACtB,QAAA,2CACG,MAAD,EAAA;AAAA,UAAM,GAAK,EAAA,KAAA;AAAA,UAAO,KAAO,EAAA,YAAA;AAAA,SAAA,sCACtB,MAAD,EAAA;AAAA,UAAM,KAAO,EAAA,kBAAA;AAAA,UAAoB,uBAAA,EAAyB,CAAE,MAAQ,EAAA,IAAA,CAAA;AAAA,SAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAK1E,MAAI,IAAA,KAAA,GAAQ,IAAK,CAAA,MAAA,GAAS,CAAG,EAAA;AAC3B,QAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,UAAA,2CACG,MAAD,EAAA;AAAA,YAAM,GAAK,EAAA,KAAA;AAAA,YAAO,KAAO,EAAA,YAAA;AAAA,WAAA,sCACtB,MAAD,EAAA;AAAA,YAAM,KAAO,EAAA,kBAAA;AAAA,WAAqB,EAAA,IAAA,CAAA,sCACjC,MAAD,EAAA;AAAA,YAAM,KAAA,EAAO,CAAE,WAAa,EAAA,KAAA,CAAA;AAAA,WAAS,EAAA,GAAA,CAAA,CAAA,CAAA;AAAA,SAAA;AAK3C,QAAI,IAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,WAAW,MAAS,CAAA,EAAA;AAC5B,UAAA,2CACG,MAAD,EAAA;AAAA,YAAM,GAAK,EAAA,KAAA;AAAA,YAAO,KAAO,EAAA,YAAA;AAAA,WAAA,sCACtB,MAAD,EAAA;AAAA,YAAM,SAAU,EAAA,gBAAA;AAAA,YAAiB,KAAA,EAAO,CAAE,WAAa,EAAA,KAAA,CAAA;AAAA,WAAA,sCACpD,KAAD,EAAA;AAAA,YAAK,KAAO,EAAA,EAAA;AAAA,YAAI,MAAQ,EAAA,EAAA;AAAA,YAAI,GAAK,EAAA,IAAA;AAAA,WAAA,CAAA,CAAA,sCAElC,MAAD,EAAA;AAAA,YAAM,KAAA,EAAO,CAAE,WAAa,EAAA,KAAA,CAAA;AAAA,WAAS,EAAA,GAAA,CAAA,CAAA,CAAA;AAAA,SAAA;AAI3C,QAAA,2CACG,MAAD,EAAA;AAAA,UAAM,GAAK,EAAA,KAAA;AAAA,UAAO,KAAO,EAAA,YAAA;AAAA,SAAA,sCACtB,MAAD,EAAA;AAAA,UAAM,KAAO,EAAA,kBAAA;AAAA,SAAqB,EAAA,IAAA,CAAA,sCACjC,MAAD,EAAA;AAAA,UAAM,KAAA,EAAO,CAAE,WAAa,EAAA,KAAA,CAAA;AAAA,SAAU,EAAA,UAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAI5C,MAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,QAAA,2CACG,MAAD,EAAA;AAAA,UAAM,GAAK,EAAA,KAAA;AAAA,UAAO,KAAO,EAAA,YAAA;AAAA,SAAA,sCACtB,MAAD,EAAA;AAAA,UAAM,KAAO,EAAA,kBAAA;AAAA,SAAqB,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAIxC,MAAI,IAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,WAAW,MAAS,CAAA,EAAA;AAC5B,QAAA,2CACG,MAAD,EAAA;AAAA,UAAM,SAAU,EAAA,gBAAA;AAAA,UAAiB,GAAK,EAAA,KAAA;AAAA,UAAO,KAAA,EAAO,CAAE,WAAa,EAAA,KAAA,CAAA;AAAA,SAAA,sCAChE,KAAD,EAAA;AAAA,UAAK,KAAO,EAAA,EAAA;AAAA,UAAI,MAAQ,EAAA,EAAA;AAAA,UAAI,GAAK,EAAA,IAAA;AAAA,SAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAIvC,MAAA,2CACG,MAAD,EAAA;AAAA,QAAM,KAAO,EAAA,kBAAA;AAAA,QAAoB,GAAK,EAAA,KAAA;AAAA,OACnC,EAAA,IAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAIP,IAAA,2CACG,KAAD,EAAA;AAAA,MACE,KAAO,EAAA;AAAA,QACL,OAAS,EAAA,MAAA;AAAA,QACT,cAAgB,EAAA,cAAA;AAAA,QAChB,UAAY,EAAA,QAAA;AAAA,OAAA;AAAA,KAGb,EAAA,OAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAKP,EAAM,MAAA,OAAA,uCACH,KAAD,EAAA;AAAA,IAAK,WAAW,CAAG,EAAA,SAAA,CAAA,gBAAA,CAAA;AAAA,GAChB,EAAA,CAAA,EAAA,GAAA,aAAA,CAAc,cAAd,IAAyB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,CAAI,CAAC,IAAW,EAAA,KAAA,KAAkB,UAAU,IAAM,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAGhF,EAAM,MAAA,cAAA,GAAiB,KAAS,IAAA,CAAE,KAAO,EAAA,GAAA,CAAA,CAAA;AAGzC,EAAI,IAAA,CAAC,cAAc,QAAW,CAAA,EAAA;AAC5B,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,2CAEG,OAAD,EAAA;AAAA,IACE,SAAU,EAAA,SAAA;AAAA,IACV,OAAA;AAAA,IAEA,WAAA,EAAa,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,IAC3B,cAAc,MAAM;AAClB,MAAQ,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAEV,gBAAiB,EAAA,sBAAA;AAAA,GAAA,sCAGhB,KAAD,EAAA;AAAA,IACE,SAAU,EAAA,eAAA;AAAA,IACV,WAAA,EAAa,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,IAC3B,YAAA,EAAc,MAAM,OAAQ,CAAA,KAAA,CAAA;AAAA,IAC5B,KAAO,EAAA,cAAA;AAAA,GAEN,EAAA,KAAA,IAAA,IAAA,GAAA,KAAA,uCACE,GAAD,EAAA;AAAA,IAAG,SAAU,EAAA,KAAA;AAAA,GAAA,sCACV,KAAD,EAAA;AAAA,IACE,GAAA,EAAK,UAAUC,GAAiB,GAAAC,KAAA;AAAA,IAChC,KAAO,EAAA,EAAA;AAAA,IACP,MAAQ,EAAA,EAAA;AAAA,IACR,KAAA,EAAO,CAAE,WAAa,EAAA,KAAA,CAAA;AAAA,GAAA,CAAA,EAGvB,CAAE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{backward as e,forward as s,scale as i,fullScreen as a}from"../common/index.js";import n from"../../../../../../assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js";import r from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js";import t from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js";import m from"../../../../../../assets/annotation/pointCloudTool/changePointCloudValid.svg.js";import u from"../../../../../../assets/annotation/pointCloudTool/copy.svg.js";import l from"../../../../../../assets/annotation/pointCloudTool/nextBox.svg.js";import c from"../../../../../../assets/annotation/pointCloudTool/patse.svg.js";import C from"../../../../../../assets/annotation/pointCloudTool/prevBox.svg.js";import g from"../../../../../../assets/annotation/pointCloudTool/rotate180_black.svg.js";import p from"../../../../../../assets/annotation/pointCloudTool/selectAll.svg.js";import d from"../../../../../../assets/annotation/pointCloudTool/selectMultiple.svg.js";import h from"../../../../../../assets/annotation/toolHotKeyIcon/icon_tab_kj.svg.js";import o from"react";import{ReloadOutlined as E,RotateLeftOutlined as f,RotateRightOutlined as B}from"@ant-design/icons";const v={name:"\u70B9\u7684\u663E\u793A\u7C97\u7EC6",icon:o.createElement("span",{style:{display:" inline-block",width:14,height:14,borderRadius:"50%",border:"1px solid"}}),shortCut:["+","-"],linkSymbol:""},F={name:"\u7ED5\u4E2D\u5FC3\u70B9\u65CB\u8F6C\u753B\u9762",icon:o.createElement(E,null),shortCut:[r],noticeInfo:"\u62D6\u52A8"},j={name:"\u70B9\u4E91\u5E73\u79FB",icon:n,shortCut:[t],noticeInfo:"\u62D6\u52A8"},A={name:"\u4FEF\u89C6\u56FE\u5E73\u79FB",icon:n,shortCut:[t],noticeInfo:"\u62D6\u52A8"},D={name:"\u5207\u6362\u70B9\u4E91\u6709\u6548\u6027",icon:m,shortCut:["V"]},x={name:"\u590D\u5236\u6846",icon:u,shortCut:["Ctrl","C"]},I={name:"\u7C98\u8D34\u6846",icon:c,shortCut:["Ctrl","V"]},R={name:"\u5411\u5DE6\u65CB\u8F6C\u5FAE\u8C03",icon:o.createElement(f,null),shortCut:["Q"]},_={name:"\u5411\u53F3\u65CB\u8F6C\u5FAE\u8C03",icon:o.createElement(B,null),shortCut:["E"]},$={name:"\u4E0A\u4E00\u6846",icon:C,shortCut:["Z"]},y={name:"\u4E0B\u4E00\u6846",icon:l,shortCut:["C"]},T={name:"\u65CB\u8F6C180\xB0",icon:g,shortCut:["G"],noticeInfo:"\u9009\u4E2D\u65F6"},b={name:"\u590D\u5236\u4E0A\u4E00\u9875",icon:u,shortCut:["Alt","C"]},k={name:"\u5207\u6362\u6807\u6CE8\u6846\u6709\u6548\u6027",icon:h,shortCut:["F"],noticeInfo:"\u9009\u4E2D\u65F6"},P={name:"\u591A\u9009",icon:d,shortCut:["Ctrl",t]},S={name:"\u5168\u9009",icon:p,shortCut:["Ctrl","A"]},w=[{name:"\u901A\u7528"},e,s,v,i,F,j,A,D,{name:"\u62C9\u6846\u6A21\u5F0F"},x,I,R,_,$,y,T,b,k,P,S,a];export{w as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.tsx"],"sourcesContent":["import _ from 'lodash';\nimport { backward, forward, fullScreen, scale } from '../common';\nimport dragIcon from '@/assets/annotation/toolHotKeyIcon/icon_move_kj.svg';\nimport leftClick from '@/assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg';\nimport rightClick from '@/assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg';\nimport changePointCloudValid from '@/assets/annotation/pointCloudTool/changePointCloudValid.svg';\nimport copy from '@/assets/annotation/pointCloudTool/copy.svg';\nimport nextBox from '@/assets/annotation/pointCloudTool/nextBox.svg';\nimport patse from '@/assets/annotation/pointCloudTool/patse.svg';\nimport prevBox from '@/assets/annotation/pointCloudTool/prevBox.svg';\nimport rotate180_black from '@/assets/annotation/pointCloudTool/rotate180_black.svg';\nimport selectAll from '@/assets/annotation/pointCloudTool/selectAll.svg';\nimport selectMultiple from '@/assets/annotation/pointCloudTool/selectMultiple.svg';\nimport TabChangeSelectedSvg from '@/assets/annotation/toolHotKeyIcon/icon_tab_kj.svg';\n\nimport { IShortcut } from '@/types/tool';\nimport React from 'react';\nimport { ReloadOutlined, RotateLeftOutlined, RotateRightOutlined } from '@ant-design/icons';\n\nconst changePointSize: IShortcut = {\n name: '点的显示粗细',\n icon: (\n <span\n style={{\n display: ' inline-block',\n width: 14,\n height: 14,\n borderRadius: '50%',\n border: '1px solid',\n }}\n />\n ),\n shortCut: ['+', '-'],\n linkSymbol: '',\n};\n\nconst rotateRoundCenter: IShortcut = {\n name: '绕中心点旋转画面',\n icon: <ReloadOutlined />,\n shortCut: [leftClick],\n noticeInfo: '拖动',\n};\n\nconst Drag3D = {\n name: '点云平移',\n icon: dragIcon,\n shortCut: [rightClick],\n noticeInfo: '拖动',\n};\n\nconst DragTopView = {\n name: '俯视图平移',\n icon: dragIcon,\n shortCut: [rightClick],\n noticeInfo: '拖动',\n};\n\nconst ChangeInvalid = {\n name: '切换点云有效性',\n icon: changePointCloudValid,\n shortCut: ['V'],\n};\n\nconst CopyBox = {\n name: '复制框',\n icon: copy,\n shortCut: ['Ctrl', 'C'],\n};\n\nconst PasteBox = {\n name: '粘贴框',\n icon: patse,\n shortCut: ['Ctrl', 'V'],\n};\n\nconst LeftRotate = {\n name: '向左旋转微调',\n icon: <RotateLeftOutlined />,\n shortCut: ['Q'],\n};\n\nconst RightRotate = {\n name: '向右旋转微调',\n icon: <RotateRightOutlined />,\n shortCut: ['E'],\n};\n\nconst PrevBox = {\n name: '上一框',\n icon: prevBox,\n shortCut: ['Z'],\n};\n\nconst NextBox = {\n name: '下一框',\n icon: nextBox,\n shortCut: ['C'],\n};\n\nconst Rotate180 = {\n name: '旋转180°',\n icon: rotate180_black,\n shortCut: ['G'],\n noticeInfo: '选中时',\n};\n\nconst CopyPrevPage = {\n name: '复制上一页',\n icon: copy,\n shortCut: ['Alt', 'C'],\n};\n\nconst ChangeBoxInvalid = {\n name: '切换标注框有效性',\n icon: TabChangeSelectedSvg,\n shortCut: ['F'],\n noticeInfo: '选中时',\n};\n\nconst SelectMulti = {\n name: '多选',\n icon: selectMultiple,\n shortCut: ['Ctrl', rightClick],\n};\n\nconst SelectAll = {\n name: '全选',\n icon: selectAll,\n shortCut: ['Ctrl', 'A'],\n};\n\nconst pointCloudShortCutTable: IShortcut[] = [\n { name: '通用' },\n backward,\n forward,\n changePointSize,\n scale,\n rotateRoundCenter,\n Drag3D,\n DragTopView,\n ChangeInvalid,\n { name: '拉框模式' },\n CopyBox,\n PasteBox,\n LeftRotate,\n RightRotate,\n PrevBox,\n NextBox,\n Rotate180,\n CopyPrevPage,\n ChangeBoxInvalid,\n SelectMulti,\n SelectAll,\n fullScreen,\n];\n\nexport default pointCloudShortCutTable;\n"],"names":["leftClick","dragIcon","rightClick","changePointCloudValid","copy","patse","prevBox","nextBox","rotate180_black","TabChangeSelectedSvg","selectMultiple","selectAll"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import l from"react";import n from"./ToolHotKey/index.js";import
|
|
1
|
+
import l from"react";import n from"./ToolHotKey/index.js";import i from"../../../../utils/StepUtils.js";import{useSelector as s}from"../../../../store/ctx.js";const a=()=>{const o=s(t=>{var e,r;return i.getCurrentStepInfo((e=t==null?void 0:t.annotation)==null?void 0:e.step,(r=t.annotation)==null?void 0:r.stepList)});return l.createElement("div",{className:"tipsBar"},l.createElement(n,{toolName:o==null?void 0:o.tool}))};export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/FooterTips/index.tsx"],"sourcesContent":["import React from 'react';\nimport ToolHotKey from './ToolHotKey';\nimport
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/FooterTips/index.tsx"],"sourcesContent":["import React from 'react';\nimport ToolHotKey from './ToolHotKey';\nimport StepUtils from '@/utils/StepUtils';\nimport { useSelector } from '@/store/ctx';\n\nconst FooterTips: React.FC = () => {\n // @ts-ignore\n const stepInfo = useSelector((state) =>\n // @ts-ignore\n StepUtils.getCurrentStepInfo(state?.annotation?.step, state.annotation?.stepList),\n );\n\n return (\n <div className='tipsBar'>\n <ToolHotKey toolName={stepInfo?.tool} />\n </div>\n );\n};\n\nexport default FooterTips;\n"],"names":[],"mappings":";;;;;AAKA,MAAM,aAAuB,MAAM;AAEjC,EAAM,MAAA,QAAA,GAAW,WAAY,CAAA,CAAC,KAAO,KAAA;AAPvC,IAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AASI,IAAA,OAAA,SAAA,CAAU,mBAAmB,CAAO,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,UAAA,KAAP,mBAAmB,IAAM,EAAA,CAAA,EAAA,GAAA,KAAA,CAAM,eAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAG1E,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,SAAA;AAAA,GAAA,sCACZ,UAAD,EAAA;AAAA,IAAY,UAAU,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,IAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import n,{useState as i,useEffect as s}from"react";import{connect as c}from"react-redux";import{Divider as
|
|
1
|
+
import n,{useState as i,useEffect as s}from"react";import{connect as c}from"react-redux";import{Divider as l}from"antd/es";import{useTranslation as d}from"react-i18next";import{LabelBeeContext as u}from"../../../../store/ctx.js";const m=e=>{const{toolInstance:t}=e,[x,o]=i(0),{t:r}=d();return s(()=>{t&&t.singleOn("hiddenChange",()=>{o(a=>a+1)})},[t]),t&&t.isHidden?n.createElement("span",null,r("HideDrawnAnnotation"),n.createElement(l,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}})):null},p=e=>{var t;return{toolInstance:(t=e.annotation)==null?void 0:t.toolInstance}};var f=c(p,null,null,{context:u})(m);export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/HiddenTips/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { Divider } from 'antd/es';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: ToolInstance;\n}\n\nconst HiddenTips = (props: IProps) => {\n const { toolInstance } = props;\n const [_, forceRender] = useState(0);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('hiddenChange', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const isHidden = toolInstance.isHidden;\n\n if (isHidden) {\n return (\n <span>\n {t('HideDrawnAnnotation')}\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n </span>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation?.toolInstance,\n };\n};\n\nexport default connect(mapStateToProps)(HiddenTips);\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/HiddenTips/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { Divider } from 'antd/es';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n toolInstance: ToolInstance;\n}\n\nconst HiddenTips = (props: IProps) => {\n const { toolInstance } = props;\n const [_, forceRender] = useState(0);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('hiddenChange', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const isHidden = toolInstance.isHidden;\n\n if (isHidden) {\n return (\n <span>\n {t('HideDrawnAnnotation')}\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n </span>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation?.toolInstance,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(HiddenTips);\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,UAAA,GAAa,CAAC,KAAkB,KAAA;AACpC,EAAA,MAAM,CAAE,YAAiB,CAAA,GAAA,KAAA,CAAA;AACzB,EAAM,MAAA,CAAC,CAAG,EAAA,WAAA,CAAA,GAAe,QAAS,CAAA,CAAA,CAAA,CAAA;AAClC,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAc,EAAA;AAChB,MAAa,YAAA,CAAA,QAAA,CAAS,gBAAgB,MAAM;AAC1C,QAAY,WAAA,CAAA,CAAC,MAAM,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EAG1B,CAAC,YAAA,CAAA,CAAA,CAAA;AAEJ,EAAA,IAAI,CAAC,YAAc,EAAA;AACjB,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,MAAM,WAAW,YAAa,CAAA,QAAA,CAAA;AAE9B,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,2CACG,MAAD,EAAA,IAAA,EACG,CAAE,CAAA,qBAAA,CAAA,sCACF,OAAD,EAAA;AAAA,MAAS,IAAK,EAAA,UAAA;AAAA,MAAW,KAAO,EAAA,CAAE,UAAY,EAAA,wBAAA,EAA0B,MAAQ,EAAA,MAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKtF,EAAO,OAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAGT,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AA3C7C,EAAA,IAAA,EAAA,CAAA;AA4CE,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAIpC,mBAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAAmB,CAAA,CAAA,CAAA,UAAA,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o,{useState as u,useEffect as s}from"react";import{connect as i}from"react-redux";import{Divider as m}from"antd/es";import{useTranslation as f}from"react-i18next";import{LabelBeeContext as p}from"../../../../store/ctx.js";const d=n=>{var t;const{toolInstance:e}=n,[x,a]=u(0),{t:l}=f();if(s(()=>{e&&e.singleOn("updatePageNumber",()=>{a(c=>c+1)})},[e]),!e)return null;const r=(t=e==null?void 0:e.currentPageResult)==null?void 0:t.length;return r>=0?o.createElement("span",null,`${l("ItemsOfThisPage")}: ${r}`,o.createElement(m,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}})):null},g=n=>{var t;return{toolInstance:(t=n.annotation)==null?void 0:t.toolInstance}};var v=i(g,null,null,{context:p})(d);export{v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/PageNumber/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { GraphToolInstance } from '@/store/annotation/types';\nimport { Divider } from 'antd/es';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n}\n\nconst PageNumber = (props: IProps) => {\n const { toolInstance } = props;\n const [_, forceRender] = useState(0);\n const { t } = useTranslation();\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('updatePageNumber', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const count = toolInstance?.currentPageResult?.length;\n if (count >= 0) {\n return (\n <span>\n {`${t('ItemsOfThisPage')}: ${count}`}\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n </span>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation?.toolInstance,\n };\n};\n\nexport default connect(mapStateToProps)(PageNumber);\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/PageNumber/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { GraphToolInstance } from '@/store/annotation/types';\nimport { Divider } from 'antd/es';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n}\n\nconst PageNumber = (props: IProps) => {\n const { toolInstance } = props;\n const [_, forceRender] = useState(0);\n const { t } = useTranslation();\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('updatePageNumber', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const count = toolInstance?.currentPageResult?.length;\n if (count >= 0) {\n return (\n <span>\n {`${t('ItemsOfThisPage')}: ${count}`}\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n </span>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation?.toolInstance,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(PageNumber);\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,UAAA,GAAa,CAAC,KAAkB,KAAA;AAZtC,EAAA,IAAA,EAAA,CAAA;AAaE,EAAA,MAAM,CAAE,YAAiB,CAAA,GAAA,KAAA,CAAA;AACzB,EAAM,MAAA,CAAC,CAAG,EAAA,WAAA,CAAA,GAAe,QAAS,CAAA,CAAA,CAAA,CAAA;AAClC,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAc,EAAA;AAChB,MAAa,YAAA,CAAA,QAAA,CAAS,oBAAoB,MAAM;AAC9C,QAAY,WAAA,CAAA,CAAC,MAAM,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EAG1B,CAAC,YAAA,CAAA,CAAA,CAAA;AAEJ,EAAA,IAAI,CAAC,YAAc,EAAA;AACjB,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAM,MAAA,KAAA,GAAQ,CAAc,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,iBAAA,KAAd,IAAiC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,CAAA;AAC/C,EAAA,IAAI,SAAS,CAAG,EAAA;AACd,IACE,uBAAA,KAAA,CAAA,aAAA,CAAC,QAAD,IACG,EAAA,CAAA,EAAG,EAAE,iBAAuB,CAAA,CAAA,EAAA,EAAA,KAAA,CAAA,CAAA,sCAC5B,OAAD,EAAA;AAAA,MAAS,IAAK,EAAA,UAAA;AAAA,MAAW,KAAO,EAAA,CAAE,UAAY,EAAA,wBAAA,EAA0B,MAAQ,EAAA,MAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKtF,EAAO,OAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAGT,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AAzC7C,EAAA,IAAA,EAAA,CAAA;AA0CE,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAIpC,mBAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAAmB,CAAA,CAAA,CAAA,UAAA,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{StepForwardFilled as
|
|
1
|
+
import{getClassName as d}from"../../../utils/dom.js";import{StepForwardFilled as _,RightOutlined as f,StepBackwardFilled as P,LeftOutlined as E}from"@ant-design/icons";import{Input as v}from"antd";import r,{useState as w,useRef as h,useEffect as O}from"react";var y=Object.defineProperty,m=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,p=(e,n,t)=>n in e?y(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,l=(e,n)=>{for(var t in n||(n={}))N.call(n,t)&&p(e,t,n[t]);if(m)for(var t of m(n))S.call(n,t)&&p(e,t,n[t]);return e};const u=e=>{const{jumpSkip:n,imgIndex:t}=e,[s,i]=w(t),c=h(null);O(()=>{i(t+1)},[t]);const a=o=>{/^\d*$/.test(o.target.value)&&i(o.target.value)},g=o=>{o.keyCode===13&&n(o.target.value)};return r.createElement(v,{className:d("page-input"),ref:c,onChange:a,value:s,onKeyDown:g})},I=e=>e.isVideo?r.createElement(_,l({},e.iconProps)):r.createElement(f,l({},e.iconProps)),j=e=>e.isVideo?r.createElement(P,l({},e.iconProps)):r.createElement(E,l({},e.iconProps)),k=({pageBackward:e,imgIndex:n,pageJump:t,totalPage:s,pageForward:i,isVideo:c,footerCls:a})=>r.createElement("div",{className:`${a}__pagination`},r.createElement(j,{isVideo:c,iconProps:{className:`${a}__highlight`,onClick:e}}),r.createElement(u,{imgIndex:n,jumpSkip:t}),"/",r.createElement("span",{className:`${a}__pageAll`},s),r.createElement(I,{isVideo:c,iconProps:{className:`${a}__highlight`,onClick:i}}));export{u as PageInput,k as Pagination};
|