@labelbee/lb-components 1.5.0 → 1.6.0-alpha.2
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/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/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/{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/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/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/index.js +1 -0
- package/dist/components/videoPlayer/components/controller/index.js +1 -1
- package/dist/components/videoPlayer/index.js +1 -1
- package/dist/components/videoPlayer/utils.js +1 -1
- package/dist/data/enums/ToolType.js +1 -1
- package/dist/hooks/annotation.js +1 -0
- package/dist/index.css +273 -43
- package/dist/index.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/types/App.d.ts +4 -3
- package/dist/types/components/AnnotationView/index.d.ts +2 -2
- 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 +31 -0
- package/dist/types/components/pointCloudView/PointCloudInfos.d.ts +19 -0
- package/dist/types/components/pointCloudView/PointCloudLayout.d.ts +6 -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/hooks/useBoxes.d.ts +10 -0
- package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +59 -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/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 +3 -1
- package/dist/types/hooks/annotation.d.ts +24 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/store/annotation/actionCreators.d.ts +4 -4
- package/dist/types/store/annotation/map.d.ts +13 -0
- package/dist/types/store/annotation/reducer.d.ts +1 -1
- 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 +1 -1
- 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/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/index.d.ts +14 -4
- package/dist/types/views/MainView/toolFooter/index.d.ts +5 -8
- 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/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/PointCloudToolSidebar/index.js +1 -0
- package/dist/views/MainView/sidebar/SwitchAttributeList/index.js +1 -1
- package/dist/views/MainView/sidebar/ToolIcons.js +1 -0
- 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/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/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/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/components/AnnotationView/index.js +1 -1
- package/es/components/AnnotationView/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 -0
- 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 -0
- 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 -0
- package/es/components/pointCloudView/PointCloudTopView.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/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/index.js +1 -0
- package/es/components/pointCloudView/index.js.map +1 -0
- package/es/components/videoPlayer/components/controller/index.js +1 -1
- package/es/components/videoPlayer/components/controller/index.js.map +1 -1
- package/es/components/videoPlayer/index.js +1 -1
- package/es/components/videoPlayer/index.js.map +1 -1
- package/es/components/videoPlayer/utils.js +1 -1
- package/es/components/videoPlayer/utils.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/useSize.js.map +1 -1
- package/es/index.css +1364 -0
- package/es/index.js +1 -1
- package/es/index.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/utils/StepUtils.js +1 -1
- package/es/utils/StepUtils.js.map +1 -1
- package/es/utils/ToolUtils.js +1 -0
- 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/index.js +1 -1
- package/es/views/MainView/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/PointCloudToolSidebar/index.js +1 -0
- package/es/views/MainView/sidebar/PointCloudToolSidebar/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/ToolIcons.js +1 -0
- package/es/views/MainView/sidebar/ToolIcons.js.map +1 -0
- 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/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/package.json +14 -13
- package/dist/index.css.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ViewportProvider as
|
|
1
|
+
import{ViewportProvider as _}from"../../components/customResizeHook/index.js";import{prefix as y}from"../../constant/index.js";import{Spin as E}from"antd";import{Layout as s}from"antd/es";import o from"react";import g from"./annotationOperation/index.js";import h from"./annotationTips/index.js";import x from"./sidebar/index.js";import c from"./toolFooter/index.js";import j from"./toolHeader/index.js";import{getStepConfig as w}from"../../store/annotation/reducer.js";import P from"../../components/videoAnnotate/index.js";import{connect as T}from"react-redux";import u from"../../utils/ToolUtils.js";import N from"../../components/pointCloudView/index.js";import{getClassName as O}from"../../utils/dom.js";import{classnames as C}from"../../utils/index.js";var V=Object.defineProperty,f=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,v=(e,t,n)=>t in e?V(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))A.call(t,n)&&v(e,n,t[n]);if(f)for(var n of f(t))S.call(t,n)&&v(e,n,t[n]);return e};const{Sider:b,Content:I}=s,d=`${y}-layout`,$=e=>{var t;return o.createElement(o.Fragment,null,e.showTips===!0&&o.createElement(h,{tips:e.path}),o.createElement(g,m({},e)),o.createElement(c,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},F=e=>{var t;return o.createElement(o.Fragment,null,o.createElement(N,null),o.createElement(c,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},H=e=>{var t;const{stepList:n,step:l}=e,a=(t=w(n,l))==null?void 0:t.tool,i=u.isVideoTool(a),r=u.isPointCloudTool(a);return i?o.createElement(P,m({},e)):r?o.createElement(F,m({},e)):o.createElement($,m({},e))},L=e=>{var t,n,l,a,i;const r=(n=(t=e.style)==null?void 0:t.sider)==null?void 0:n.width;return o.createElement(_,null,o.createElement(E,{spinning:e.loading},o.createElement(s,{className:C([d,e.className]),style:(l=e.style)==null?void 0:l.layout},o.createElement("header",{className:`${d}__header`,style:(a=e.style)==null?void 0:a.header},o.createElement(j,{header:e==null?void 0:e.header,headerName:e.headerName,goBack:e.goBack,exportData:e.exportData})),o.createElement(s,{className:O("layout","container")},e==null?void 0:e.leftSider,o.createElement(I,{className:`${d}__content`},o.createElement(H,m({},e))),o.createElement(b,{className:`${d}__side`,width:r||240,style:(i=e.style)==null?void 0:i.sider},o.createElement(x,{sider:e==null?void 0:e.sider}))))))},p=({annotation:e})=>{var t,n,l;const{imgList:a,loading:i}=e,r=(t=a[e.imgIndex])!=null?t:{};return{path:(l=(n=r==null?void 0:r.url)!=null?n:r==null?void 0:r.path)!=null?l:"",loading:i}};var B=T(p)(L);export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/views/MainView/index.tsx"],"sourcesContent":["import { AppProps } from '@/App';\nimport { ViewportProvider } from '@/components/customResizeHook';\nimport { prefix } from '@/constant';\nimport { Spin } from 'antd';\nimport { Layout } from 'antd/es';\nimport _ from 'lodash';\nimport React from 'react';\nimport AnnotationOperation from './annotationOperation';\nimport AnnotationTips from './annotationTips';\nimport Sidebar from './sidebar';\nimport ToolFooter from './toolFooter';\nimport ToolHeader from './toolHeader';\nimport { getStepConfig } from '@/store/annotation/reducer';\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/views/MainView/index.tsx"],"sourcesContent":["import { AppProps } from '@/App';\nimport { ViewportProvider } from '@/components/customResizeHook';\nimport { prefix } from '@/constant';\nimport { Spin } from 'antd';\nimport { Layout } from 'antd/es';\nimport _ from 'lodash';\nimport React from 'react';\nimport AnnotationOperation from './annotationOperation';\nimport AnnotationTips from './annotationTips';\nimport Sidebar from './sidebar';\nimport ToolFooter from './toolFooter';\nimport ToolHeader from './toolHeader';\nimport { getStepConfig } from '@/store/annotation/reducer';\n\nimport VideoAnnotate from '@/components/videoAnnotate';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport ToolUtils from '@/utils/ToolUtils';\nimport PointCloudView from '@/components/pointCloudView';\nimport { getClassName } from '@/utils/dom';\nimport { classnames } from '@/utils';\n\ninterface IProps {\n path: string;\n loading: boolean;\n}\n\nconst { Sider, Content } = Layout;\n\nconst layoutCls = `${prefix}-layout`;\n\nconst ImageAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n {props.showTips === true && <AnnotationTips tips={props.path} />}\n <AnnotationOperation {...props} />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst PointCloudAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n <PointCloudView />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst AnnotatedArea: React.FC<AppProps & IProps> = (props) => {\n const { stepList, step } = props;\n const currentToolName = getStepConfig(stepList, step)?.tool;\n const isVideoTool = ToolUtils.isVideoTool(currentToolName);\n const isPointCloudTool = ToolUtils.isPointCloudTool(currentToolName);\n\n if (isVideoTool) {\n return <VideoAnnotate {...props} />;\n }\n\n if (isPointCloudTool) {\n return <PointCloudAnnotate {...props} />;\n }\n\n return <ImageAnnotate {...props} />;\n};\n\nconst MainView: React.FC<AppProps & IProps> = (props) => {\n const siderWidth = props.style?.sider?.width;\n\n return (\n <ViewportProvider>\n <Spin spinning={props.loading}>\n <Layout className={classnames([layoutCls, props.className])} style={props.style?.layout}>\n <header className={`${layoutCls}__header`} style={props.style?.header}>\n <ToolHeader\n header={props?.header}\n headerName={props.headerName}\n goBack={props.goBack}\n exportData={props.exportData}\n />\n </header>\n\n <Layout className={getClassName('layout', 'container')}>\n {props?.leftSider}\n <Content className={`${layoutCls}__content`}>\n <AnnotatedArea {...props} />\n </Content>\n <Sider\n className={`${layoutCls}__side`}\n width={siderWidth ? siderWidth : 240}\n style={props.style?.sider}\n >\n <Sidebar sider={props?.sider} />\n </Sider>\n </Layout>\n </Layout>\n </Spin>\n </ViewportProvider>\n );\n};\n\nconst mapStateToProps = ({ annotation }: AppState) => {\n const { imgList, loading } = annotation;\n const imgInfo = imgList[annotation.imgIndex] ?? {};\n return {\n path: imgInfo?.url ?? imgInfo?.path ?? '', // 将当前路径的数据注入\n loading,\n };\n};\n\nexport default connect(mapStateToProps)(MainView);\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t,{useState as s}from"react";import{Col as i,Popconfirm as u}from"antd";import{useTranslation as o}from"react-i18next";const p=({info:e})=>{const{t:r}=o();return e.key.startsWith("sure")?t.createElement("div",{key:e.key},`${r("ConfirmTo")}${e.name.slice(0)}\uFF1F`):t.createElement("span",null,e.name)},E=({icon:e})=>typeof e=="string"?t.createElement("img",{width:23,height:25,src:e}):e,k=({allOperation:e})=>{const[r,a]=s(null),{t:c}=o(),m=Math.floor(24/e.length);return t.createElement("div",{className:"generalOperation"},e.map((n,l)=>t.createElement(i,{span:m,key:l},t.createElement("div",{key:n.key,className:"item",onMouseEnter:()=>{a(n.key)},onMouseLeave:()=>{a(null)}},t.createElement(u,{title:t.createElement(p,{info:n}),placement:"topRight",okText:c("Confirm"),cancelText:c("Cancel"),onConfirm:n.onClick},t.createElement("div",{className:"icon"},t.createElement(E,{icon:n.key===r?n.hoverSvg:n.imgSvg})),t.createElement("div",{className:"toolName",style:{color:n.key===r?"#666fff":""}},n.name))))))};export{k as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionsConfirm.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/ActionsConfirm.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Col, Popconfirm } from 'antd';\nimport { useTranslation } from 'react-i18next';\n\nexport interface IOperationConfig {\n name: string;\n key: string;\n imgSvg: string | React.ReactElement;\n hoverSvg: string | React.ReactElement;\n onClick: () => void;\n}\n\nconst PopconfirmTitle = ({ info }: { info: IOperationConfig }) => {\n const { t } = useTranslation();\n if (info.key.startsWith('sure')) {\n return <div key={info.key}>{`${t('ConfirmTo')}${info.name.slice(0)}?`}</div>;\n }\n\n return <span>{info.name}</span>;\n};\n\nconst ActionIcon = ({ icon }: { icon: React.ReactElement | string }) => {\n if (typeof icon === 'string') {\n return <img width={23} height={25} src={icon} />;\n }\n return icon;\n};\n\nconst ActionsConfirm: React.FC<{ allOperation: IOperationConfig[] }> = ({ allOperation }) => {\n const [isHover, setHover] = useState<string | null>(null);\n const { t } = useTranslation();\n const annotationLength = Math.floor(24 / allOperation.length);\n\n return (\n <div className='generalOperation'>\n {allOperation.map((info, index) => (\n <Col span={annotationLength} key={index}>\n <div\n key={info.key}\n className='item'\n onMouseEnter={() => {\n setHover(info.key);\n }}\n onMouseLeave={() => {\n setHover(null);\n }}\n >\n <Popconfirm\n title={<PopconfirmTitle info={info} />}\n placement='topRight'\n okText={t('Confirm')}\n cancelText={t('Cancel')}\n onConfirm={info.onClick}\n >\n <div className='icon'>\n <ActionIcon icon={info.key === isHover ? info.hoverSvg : info.imgSvg} />\n </div>\n <div className='toolName' style={{ color: info.key === isHover ? '#666fff' : '' }}>\n {info.name}\n </div>\n </Popconfirm>\n </div>\n </Col>\n ))}\n </div>\n );\n};\n\nexport default ActionsConfirm;\n"],"names":[],"mappings":";;;;AAYA,MAAM,eAAA,GAAkB,CAAC,CAAE,IAAuC,CAAA,KAAA;AAChE,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAI,IAAA,IAAA,CAAK,GAAI,CAAA,UAAA,CAAW,MAAS,CAAA,EAAA;AAC/B,IAAA,2CAAQ,KAAD,EAAA;AAAA,MAAK,KAAK,IAAK,CAAA,GAAA;AAAA,KAAA,EAAM,CAAG,EAAA,CAAA,CAAE,WAAe,CAAA,CAAA,EAAA,IAAA,CAAK,KAAK,KAAM,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGlE,EAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA,IAAA,EAAO,IAAK,CAAA,IAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAGrB,MAAM,UAAA,GAAa,CAAC,CAAE,IAAkD,CAAA,KAAA;AACtE,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;AAE1C,EAAO,OAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAGH,MAAA,cAAA,GAAiE,CAAC,CAAE,YAAmB,CAAA,KAAA;AAC3F,EAAM,MAAA,CAAC,OAAS,EAAA,QAAA,CAAA,GAAY,QAAwB,CAAA,IAAA,CAAA,CAAA;AACpD,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAA,MAAM,gBAAmB,GAAA,IAAA,CAAK,KAAM,CAAA,EAAA,GAAK,YAAa,CAAA,MAAA,CAAA,CAAA;AAEtD,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,kBAAA;AAAA,GAAA,EACZ,aAAa,GAAI,CAAA,CAAC,IAAM,EAAA,KAAA,yCACtB,GAAD,EAAA;AAAA,IAAK,IAAM,EAAA,gBAAA;AAAA,IAAkB,GAAK,EAAA,KAAA;AAAA,GAAA,sCAC/B,KAAD,EAAA;AAAA,IACE,KAAK,IAAK,CAAA,GAAA;AAAA,IACV,SAAU,EAAA,MAAA;AAAA,IACV,cAAc,MAAM;AAClB,MAAA,QAAA,CAAS,IAAK,CAAA,GAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAEhB,cAAc,MAAM;AAClB,MAAS,QAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,sCAGV,UAAD,EAAA;AAAA,IACE,KAAA,sCAAQ,eAAD,EAAA;AAAA,MAAiB,IAAA;AAAA,KAAA,CAAA;AAAA,IACxB,SAAU,EAAA,UAAA;AAAA,IACV,QAAQ,CAAE,CAAA,SAAA,CAAA;AAAA,IACV,YAAY,CAAE,CAAA,QAAA,CAAA;AAAA,IACd,WAAW,IAAK,CAAA,OAAA;AAAA,GAAA,sCAEf,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,MAAA;AAAA,GAAA,sCACZ,UAAD,EAAA;AAAA,IAAY,MAAM,IAAK,CAAA,GAAA,KAAQ,OAAU,GAAA,IAAA,CAAK,WAAW,IAAK,CAAA,MAAA;AAAA,GAAA,CAAA,CAAA,sCAE/D,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,UAAA;AAAA,IAAW,OAAO,CAAE,KAAA,EAAO,IAAK,CAAA,GAAA,KAAQ,UAAU,SAAY,GAAA,EAAA,CAAA;AAAA,GAAA,EAC1E,IAAK,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from"react";import{connect as a}from"react-redux";import c from"../../../../utils/StepUtils.js";import{jsonParser as m}from"../../../../utils/index.js";import s from"./ActionsConfirm.js";import p from"./useOperationList.js";const l=o=>{var n,t;const i=c.getCurrentStepInfo((n=o.annotation)==null?void 0:n.step,(t=o.annotation)==null?void 0:t.stepList);return{toolInstance:o.annotation.toolInstance,stepInfo:i,imgList:o.annotation.imgList,imgIndex:o.annotation.imgIndex}},u=({toolInstance:o,stepInfo:n})=>{const t=p(o),i=m(n==null?void 0:n.config),e=[t.empty];return(n==null?void 0:n.dataSourceStep)===0&&e.push(t.setValidity),(i==null?void 0:i.copyBackwardResult)&&e.push(t.copyPrevious),r.createElement(s,{allOperation:e})},d=a(l)(({toolInstance:o,stepInfo:n})=>{const t=p(o),i=[t.copyPrevious,t.empty,t.setValidity];return r.createElement(s,{allOperation:i})});var f=a(l)(u);export{d as PointCloudOperation,f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/index.tsx"],"sourcesContent":["import React
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/index.tsx"],"sourcesContent":["import React from 'react';\nimport { AppState } from '@/store';\nimport { connect, ConnectedComponent } from 'react-redux';\nimport { ToolInstance } from '@/store/annotation/types';\nimport StepUtils from '@/utils/StepUtils';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { AnnotationFileList } from '@/types/data';\nimport ActionsConfirm, { IOperationConfig } from './ActionsConfirm';\nimport useOperationList from './useOperationList';\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n\n return {\n toolInstance: state.annotation.toolInstance,\n stepInfo,\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n };\n};\ninterface IProps {\n toolInstance: ToolInstance;\n stepInfo: IStepInfo;\n imgList: AnnotationFileList;\n imgIndex: number;\n}\n\nconst GeneralOperation: React.FC<IProps> = ({ toolInstance, stepInfo }) => {\n const operationList = useOperationList(toolInstance);\n const config = jsonParser(stepInfo?.config);\n const allOperation: IOperationConfig[] = [operationList.empty];\n\n if (stepInfo?.dataSourceStep === 0) {\n allOperation.push(operationList.setValidity);\n }\n\n if (config?.copyBackwardResult) {\n allOperation.push(operationList.copyPrevious);\n }\n\n return <ActionsConfirm allOperation={allOperation} />;\n};\n\nexport const PointCloudOperation: ConnectedComponent<\n React.FC<IProps>,\n Omit<\n IProps & {\n children?: React.ReactNode;\n },\n 'toolInstance' | 'stepInfo' | 'imgList' | 'imgIndex'\n >\n> = connect(mapStateToProps)(({ toolInstance, stepInfo }) => {\n const operationList = useOperationList(toolInstance);\n const allOperation: IOperationConfig[] = [\n operationList.copyPrevious,\n operationList.empty,\n operationList.setValidity,\n ];\n return <ActionsConfirm allOperation={allOperation} />;\n});\n\nexport default connect(mapStateToProps)(GeneralOperation);\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AAX7C,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAYE,EAAM,MAAA,QAAA,GAAW,UAAU,kBAAmB,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,eAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAM,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AAExF,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,MAAM,UAAW,CAAA,YAAA;AAAA,IAC/B,QAAA;AAAA,IACA,OAAA,EAAS,MAAM,UAAW,CAAA,OAAA;AAAA,IAC1B,QAAA,EAAU,MAAM,UAAW,CAAA,QAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAU/B,MAAM,gBAAqC,GAAA,CAAC,CAAE,YAAA,EAAc,QAAe,CAAA,KAAA;AACzE,EAAA,MAAM,gBAAgB,gBAAiB,CAAA,YAAA,CAAA,CAAA;AACvC,EAAM,MAAA,MAAA,GAAS,WAAW,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,MAAA,CAAA,CAAA;AACpC,EAAM,MAAA,YAAA,GAAmC,CAAC,aAAc,CAAA,KAAA,CAAA,CAAA;AAExD,EAAI,IAAA,CAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,oBAAmB,CAAG,EAAA;AAClC,IAAA,YAAA,CAAa,KAAK,aAAc,CAAA,WAAA,CAAA,CAAA;AAAA,GAAA;AAGlC,EAAA,IAAI,iCAAQ,kBAAoB,EAAA;AAC9B,IAAA,YAAA,CAAa,KAAK,aAAc,CAAA,YAAA,CAAA,CAAA;AAAA,GAAA;AAGlC,EAAA,2CAAQ,cAAD,EAAA;AAAA,IAAgB,YAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAGlB,MAAM,sBAQT,OAAQ,CAAA,eAAA,CAAA,CAAiB,CAAC,CAAE,cAAc,QAAe,CAAA,KAAA;AAC3D,EAAA,MAAM,gBAAgB,gBAAiB,CAAA,YAAA,CAAA,CAAA;AACvC,EAAA,MAAM,YAAmC,GAAA;AAAA,IACvC,aAAc,CAAA,YAAA;AAAA,IACd,aAAc,CAAA,KAAA;AAAA,IACd,aAAc,CAAA,WAAA;AAAA,GAAA,CAAA;AAEhB,EAAA,2CAAQ,cAAD,EAAA;AAAA,IAAgB,YAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,EAAA;AAGzB,yBAAe,QAAQ,eAAiB,CAAA,CAAA,gBAAA,CAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import c from"../../../../assets/annotation/common/icon_clear.svg.js";import p from"../../../../assets/annotation/common/icon_clear_a.svg.js";import v from"../../../../assets/annotation/common/icon_invalid.svg.js";import f from"../../../../assets/annotation/common/icon_invalid_a.svg.js";import{StopOutlined as o}from"@ant-design/icons";import{useTranslation as g}from"react-i18next";import i,{useMemo as u}from"react";import{CopyBackWordResult as d}from"../../../../store/annotation/actionCreators.js";import{store as y}from"../../../../index.js";var _=Object.defineProperty,n=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,a=(e,r,t)=>r in e?_(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,O=(e,r)=>{for(var t in r||(r={}))S.call(r,t)&&a(e,t,r[t]);if(n)for(var t of n(r))h.call(r,t)&&a(e,t,r[t]);return e};const P=e=>{const{t:r}=g(),t={height:"25px",lineHeight:"25px",display:"flex",justifyContent:"center",alignItems:"center"},s={name:r("ClearLabel"),key:"empty",imgSvg:c,hoverSvg:p,onClick:()=>{e==null||e.clearResult()}},m={name:r((e==null?void 0:e.valid)===!0?"SetAsInvalid":"SetAsValid"),key:"setValidity",imgSvg:i.createElement(o,{style:t}),hoverSvg:i.createElement(o,{style:O({color:"#666fff"},t)}),onClick:()=>{e.setValid(!e.valid)}},l={name:r("CopyThePrevious"),key:"copyPrevious",imgSvg:v,hoverSvg:f,onClick:()=>{y.dispatch(d())}};return u(()=>({empty:s,setValidity:m,copyPrevious:l}),[e])};export{P as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOperationList.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/useOperationList.tsx"],"sourcesContent":["import { IOperationConfig } from './ActionsConfirm';\nimport clearResultSvg from '@/assets/annotation/common/icon_clear.svg';\nimport clearResultASvg from '@/assets/annotation/common/icon_clear_a.svg';\nimport copyBackStepSvg from '@/assets/annotation/common/icon_invalid.svg';\nimport copyBackStepASvg from '@/assets/annotation/common/icon_invalid_a.svg';\nimport { StopOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\nimport React, { useMemo } from 'react';\nimport { CopyBackWordResult } from '@/store/annotation/actionCreators';\nimport { store } from '@/index';\n\n/**\n * Hooks for sidebar common operations' config\n * @param toolInstance\n * @returns\n */\nconst useOperationList = (toolInstance: any) => {\n const { t } = useTranslation();\n const iconStyle = {\n height: '25px',\n lineHeight: '25px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n };\n\n /**\n * Empty current file result\n */\n const empty: IOperationConfig = {\n name: t('ClearLabel'),\n key: 'empty',\n imgSvg: clearResultSvg,\n hoverSvg: clearResultASvg,\n onClick: () => {\n toolInstance?.clearResult();\n },\n };\n\n /**\n * Set set validity for current file\n */\n const setValidity: IOperationConfig = {\n name: t(toolInstance?.valid === true ? 'SetAsInvalid' : 'SetAsValid'),\n key: 'setValidity',\n imgSvg: <StopOutlined style={iconStyle} />,\n hoverSvg: <StopOutlined style={{ color: '#666fff', ...iconStyle }} />,\n onClick: () => {\n toolInstance.setValid(!toolInstance.valid);\n },\n };\n\n /**\n * Copy previous file result\n */\n const copyPrevious: IOperationConfig = {\n name: t('CopyThePrevious'),\n key: 'copyPrevious',\n imgSvg: copyBackStepSvg,\n hoverSvg: copyBackStepASvg,\n onClick: () => {\n store.dispatch(CopyBackWordResult());\n },\n };\n\n return useMemo(() => {\n return {\n empty,\n setValidity,\n copyPrevious,\n };\n }, [toolInstance]);\n};\n\nexport default useOperationList;\n"],"names":["clearResultSvg","clearResultASvg","copyBackStepSvg","copyBackStepASvg"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAgBM,MAAA,gBAAA,GAAmB,CAAC,YAAsB,KAAA;AAC9C,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,MAAQ,EAAA,MAAA;AAAA,IACR,UAAY,EAAA,MAAA;AAAA,IACZ,OAAS,EAAA,MAAA;AAAA,IACT,cAAgB,EAAA,QAAA;AAAA,IAChB,UAAY,EAAA,QAAA;AAAA,GAAA,CAAA;AAMd,EAAA,MAAM,KAA0B,GAAA;AAAA,IAC9B,MAAM,CAAE,CAAA,YAAA,CAAA;AAAA,IACR,GAAK,EAAA,OAAA;AAAA,IACL,MAAQ,EAAAA,GAAA;AAAA,IACR,QAAU,EAAAC,KAAA;AAAA,IACV,SAAS,MAAM;AACb,MAAc,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAOlB,EAAA,MAAM,WAAgC,GAAA;AAAA,IACpC,IAAM,EAAA,CAAA,CAAE,CAAc,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,KAAA,MAAU,OAAO,cAAiB,GAAA,YAAA,CAAA;AAAA,IACxD,GAAK,EAAA,aAAA;AAAA,IACL,MAAA,sCAAS,YAAD,EAAA;AAAA,MAAc,KAAO,EAAA,SAAA;AAAA,KAAA,CAAA;AAAA,IAC7B,QAAA,sCAAW,YAAD,EAAA;AAAA,MAAc,KAAA,EAAO,cAAE,CAAA,CAAA,KAAA,EAAO,SAAc,CAAA,EAAA,SAAA,CAAA;AAAA,KAAA,CAAA;AAAA,IACtD,SAAS,MAAM;AACb,MAAa,YAAA,CAAA,QAAA,CAAS,CAAC,YAAa,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAOxC,EAAA,MAAM,YAAiC,GAAA;AAAA,IACrC,MAAM,CAAE,CAAA,iBAAA,CAAA;AAAA,IACR,GAAK,EAAA,cAAA;AAAA,IACL,MAAQ,EAAAC,KAAA;AAAA,IACR,QAAU,EAAAC,KAAA;AAAA,IACV,SAAS,MAAM;AACb,MAAA,KAAA,CAAM,QAAS,CAAA,kBAAA,EAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAInB,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAO,OAAA;AAAA,MACL,KAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,KAAA,CAAA;AAAA,GAAA,EAED,CAAC,YAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e,{useContext as E}from"react";import{ToolIcons as g}from"../ToolIcons.js";import{cTool as y}from"@labelbee/lb-annotation";import{PointCloudContext as b}from"../../../../components/pointCloudView/PointCloudContext.js";import{Row as v,Col as d,Radio as C,Select as f}from"antd";import S from"../../../../utils/StepUtils.js";import{connect as B}from"react-redux";import{jsonParser as x}from"../../../../utils/index.js";import{useStatus as P}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as h}from"../../../../components/pointCloudView/hooks/useSingleBox.js";const k=({attributeList:a,subAttributeList:i,toolInstance:o})=>{var n;const u=E(b),r={fontWeight:400,fontSize:14,marginBottom:14},p=t=>{o.setDefaultAttribute(t)},l=(t,s)=>{o.setSubAttribute(t,s)};return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:20,fontSize:14,fontWeight:500}},"\u6807\u7B7E"),e.createElement(v,{style:{marginBottom:12}},e.createElement(d,{span:10,style:r},"\u4E3B\u5C5E\u6027"),e.createElement(d,{span:14},e.createElement(C.Group,{style:{width:"100%"},value:(n=u.selectedPointCloudBox)==null?void 0:n.attribute,onChange:t=>p(t.target.value)},a.map(t=>e.createElement(C,{key:t.value,value:t.value,style:{marginBottom:16}},t.key))))),e.createElement("div",{style:r},"\u526F\u5C5E\u6027"),i.map(t=>{var s,c;return e.createElement(v,{key:t.value,style:{marginBottom:18}},e.createElement(d,{span:10,style:{color:"#999999"}},t.key),e.createElement(d,{span:14},e.createElement(f,{style:{width:"100%"},bordered:!1,value:(c=(s=u.selectedPointCloudBox)==null?void 0:s.subAttribute)==null?void 0:c[t.value],placeholder:"\u8BF7\u586B\u5199~",onChange:m=>l(t.value,m)},t.subSelected.map(m=>e.createElement(f.Option,{key:m.value,value:m.value},m.key)))))}))},_=({stepInfo:a,toolInstance:i})=>{var o,n;const{selectedBox:u}=h(),{updatePointCloudPattern:r,pointCloudPattern:p}=P(),l=x(a.config),t=(o=l==null?void 0:l.attributeList)!=null?o:[],s=(l==null?void 0:l.secondaryAttributeConfigurable)===!0?(n=l==null?void 0:l.inputList)!=null?n:[]:[];return e.createElement(e.Fragment,null,e.createElement(g,{toolName:y.EPointCloudName.PointCloud,selectedToolName:p,onChange:c=>r==null?void 0:r(c)}),u&&e.createElement(k,{toolInstance:i,attributeList:t,subAttributeList:s}))},j=a=>{var i,o,n;const u=S.getCurrentStepInfo((i=a.annotation)==null?void 0:i.step,(o=a.annotation)==null?void 0:o.stepList),r=(n=a.annotation)==null?void 0:n.toolInstance;return{stepInfo:u,toolInstance:r}};var T=B(j)(_);export{T as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/index.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { ToolIcons } from '../ToolIcons';\nimport { cTool } from '@labelbee/lb-annotation';\nimport { PointCloudContext } from '@/components/pointCloudView/PointCloudContext';\nimport { Col, Radio, Row, Select } from 'antd';\nimport { AppState } from '@/store';\nimport StepUtils from '@/utils/StepUtils';\nimport { connect } from 'react-redux';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { ICustomToolInstance } from '@/hooks/annotation';\nimport { useStatus } from '@/components/pointCloudView/hooks/useStatus';\nimport { useSingleBox } from '@/components/pointCloudView/hooks/useSingleBox';\n\ninterface IProps {\n stepInfo: IStepInfo;\n toolInstance: ICustomToolInstance; // Created by useCustomToolInstance.\n}\n\n// Temporarily hidden, this feature does not support the function for the time being.\n// const AnnotatedBox = () => {\n// const ptCtx = useContext(PointCloudContext);\n// const { pointCloudBoxList } = ptCtx;\n\n// return (\n// <div style={{ padding: 24, borderBottom: '1px solid #eee' }}>\n// <div style={{ marginBottom: 16 }}>所有已标注的框ID</div>\n// <div>\n// {pointCloudBoxList\n// .sort((a, b) => a.trackID - b.trackID)\n// .map((i) => (\n// <Tag color='#F3F4FF' key={i.trackID} style={{ color: '#666', marginBottom: 8 }}>\n// {i.trackID}\n// </Tag>\n// ))}\n// </div>\n// </div>\n// );\n// };\n\n// const BoxTrackIDInput = () => {\n// const [isEdit, setIsEdit] = useState(false);\n// const { pointCloudBoxList } = useContext(PointCloudContext);\n// const { selectedBox, updateSelectedBox } = useSingleBox();\n// const [inputValue, setInputValue] = useState('');\n\n// const selectedBoxTrackID = selectedBox?.info.trackID;\n\n// const hasDuplicateTrackID = (trackID: number) => {\n// const duplicateBox = pointCloudBoxList.find((i) => i.trackID === selectedBoxTrackID);\n// return duplicateBox && duplicateBox.id !== selectedBox?.info.id;\n// };\n\n// const applyInputValue = (isBlurEvent = false) => {\n// const newTrackID = parseInt(inputValue, 10);\n\n// if (isBlurEvent) {\n// setIsEdit(false);\n// }\n\n// if (inputValue.indexOf('.') > -1) {\n// message.error('输入trackID不允许包含小数点');\n// return;\n// }\n\n// if (hasDuplicateTrackID(newTrackID)) {\n// message.error('存在重复的trackID');\n// return;\n// }\n\n// if (!(newTrackID > 0)) {\n// message.error('输入trackID必须为正整数!');\n// }\n\n// updateSelectedBox({ trackID: ~~inputValue });\n// };\n\n// useEffect(() => {\n// setIsEdit(false);\n// }, [selectedBoxTrackID]);\n\n// return (\n// <div style={{ padding: 24 }}>\n// <div\n// style={{\n// marginBottom: 16,\n// display: 'flex',\n// justifyContent: 'space-between',\n// alignItems: 'center',\n// }}\n// >\n// <span>当前标注框ID</span>\n// <span>批量修改</span>\n// </div>\n// <div\n// style={{\n// display: 'flex',\n// justifyContent: 'space-between',\n// alignItems: 'center',\n// }}\n// >\n// {isEdit && selectedBoxTrackID ? (\n// <Input\n// defaultValue={selectedBoxTrackID}\n// onChange={(e) => {\n// setInputValue(e.target.value);\n// }}\n// disabled={!selectedBoxTrackID}\n// size='small'\n// onBlur={() => {\n// applyInputValue();\n// }}\n// onPressEnter={() => {\n// applyInputValue(true);\n// }}\n// />\n// ) : (\n// <span>{selectedBoxTrackID}</span>\n// )}\n// <EditFilled\n// style={{\n// color: '#999',\n// marginLeft: 16,\n// cursor: selectedBoxTrackID ? 'pointer' : 'not-allowed',\n// }}\n// onClick={() => {\n// if (selectedBoxTrackID) {\n// setIsEdit(!isEdit);\n// }\n// }}\n// />\n// </div>\n// </div>\n// );\n// };\n\nconst AttributeUpdater = ({\n attributeList,\n subAttributeList,\n toolInstance,\n}: {\n toolInstance: ICustomToolInstance;\n attributeList: any[]; // TODO\n subAttributeList: any[]; // TODO\n}) => {\n const ptx = useContext(PointCloudContext);\n\n const titleStyle = {\n fontWeight: 400,\n fontSize: 14,\n marginBottom: 14,\n };\n\n const setAttribute = (attribute: string) => {\n toolInstance.setDefaultAttribute(attribute);\n };\n\n const setSubAttribute = (key: string, value: string) => {\n toolInstance.setSubAttribute(key, value);\n };\n\n return (\n <div style={{ padding: 24, borderBottom: '1px solid #eee' }}>\n <div style={{ marginBottom: 20, fontSize: 14, fontWeight: 500 }}>标签</div>\n <Row style={{ marginBottom: 12 }}>\n <Col span={10} style={titleStyle}>\n 主属性\n </Col>\n <Col span={14}>\n <Radio.Group\n style={{ width: '100%' }}\n value={ptx.selectedPointCloudBox?.attribute}\n onChange={(e) => setAttribute(e.target.value)}\n >\n {attributeList.map((v) => (\n <Radio key={v.value} value={v.value} style={{ marginBottom: 16 }}>\n {v.key}\n </Radio>\n ))}\n </Radio.Group>\n </Col>\n </Row>\n <div style={titleStyle}>副属性</div>\n {subAttributeList.map((subAttribute) => (\n <Row key={subAttribute.value} style={{ marginBottom: 18 }}>\n <Col span={10} style={{ color: '#999999' }}>\n {subAttribute.key}\n </Col>\n <Col span={14}>\n <Select\n style={{ width: '100%' }}\n bordered={false}\n value={ptx.selectedPointCloudBox?.subAttribute?.[subAttribute.value]}\n placeholder='请填写~'\n onChange={(value) => setSubAttribute(subAttribute.value, value)}\n >\n {subAttribute.subSelected.map((sub: any) => (\n <Select.Option key={sub.value} value={sub.value}>\n {sub.key}\n </Select.Option>\n ))}\n </Select>\n </Col>\n </Row>\n ))}\n </div>\n );\n};\n\nconst PointCloudToolSidebar: React.FC<IProps> = ({ stepInfo, toolInstance }) => {\n const { selectedBox } = useSingleBox();\n const { updatePointCloudPattern, pointCloudPattern } = useStatus();\n\n const config = jsonParser(stepInfo.config);\n const attributeList = config?.attributeList ?? [];\n const subAttributeList =\n config?.secondaryAttributeConfigurable === true ? config?.inputList ?? [] : [];\n\n return (\n <>\n <ToolIcons\n toolName={cTool.EPointCloudName.PointCloud}\n selectedToolName={pointCloudPattern}\n onChange={(v) => updatePointCloudPattern?.(v)}\n />\n {/* <AnnotatedBox />\n <BoxTrackIDInput /> */}\n {selectedBox && (\n <AttributeUpdater\n toolInstance={toolInstance}\n attributeList={attributeList}\n subAttributeList={subAttributeList}\n />\n )}\n </>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n const toolInstance = state.annotation?.toolInstance;\n\n return {\n stepInfo,\n toolInstance,\n };\n};\n\nexport default connect(mapStateToProps)(PointCloudToolSidebar);\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s,{useState as d,useRef as m,useEffect as v,useCallback as p}from"react";import{connect as g}from"react-redux";import A from"../../../../components/attributeList/index.js";import S from"../../../../utils/StepUtils.js";import{jsonParser as I}from"../../../../utils/index.js";import{useTranslation as h}from"react-i18next";const L=e=>{var i,o,l;const[C,a]=d(0),u=m(null),{toolInstance:t}=e,{t:c}=h();v(()=>(t&&t.singleOn("changeAttributeSidebar",r=>{var n;a(b=>b+1),!!u.current&&((n=u.current.children[r])==null||n.scrollIntoView({block:"center"}))}),()=>{t.unbindAll("changeAttributeSidebar")}),[t,u]);const f=p(r=>{t.setDefaultAttribute(r),a(n=>n+1)},[t]);if(!e.stepInfo||I(e.stepInfo.config).attributeConfigurable!==!0)return null;if(((i=t==null?void 0:t.config)==null?void 0:i.attributeConfigurable)===!0&&((o=t==null?void 0:t.config)==null?void 0:o.attributeList)){const r=t.config.attributeList.map(n=>({label:n.key,value:n.value}));return r.unshift({label:c("NoAttribute"),value:""}),s.createElement("div",null,s.createElement(A,{list:r,attributeChanged:f,selectedAttribute:(l=t==null?void 0:t.defaultAttribute)!=null?l:"",ref:u}))}return null},_=e=>{var i,o;const l=S.getCurrentStepInfo((i=e.annotation)==null?void 0:i.step,(o=e.annotation)==null?void 0:o.stepList);return{toolInstance:e.annotation.toolInstance,stepInfo:l}};var x=g(_)(L);export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/SwitchAttributeList/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { connect } from 'react-redux';\nimport { AppState } from 'src/store';\nimport { GraphToolInstance } from 'src/store/annotation/types';\nimport AttributeList from '@/components/attributeList';\nimport StepUtils from '@/utils/StepUtils';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n stepInfo: IStepInfo;\n}\n\nconst SwitchAttributeList: React.FC<IProps> = (props) => {\n const [_, forceRender] = useState(0);\n const listRef = useRef<HTMLElement>(null);\n const { toolInstance } = props;\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('changeAttributeSidebar', (index: number) => {\n forceRender((s) => s + 1);\n\n if (!listRef.current) {\n return;\n }\n\n listRef.current.children[index]?.scrollIntoView({ block: 'center' });\n });\n }\n return () => {\n toolInstance.unbindAll('changeAttributeSidebar');\n };\n }, [toolInstance, listRef]);\n\n if (!props.stepInfo) {\n return null;\n }\n\n const config = jsonParser(props.stepInfo.config);\n if (config.attributeConfigurable !== true) {\n return null;\n }\n\n if (toolInstance?.config
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/SwitchAttributeList/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport { connect } from 'react-redux';\nimport { AppState } from 'src/store';\nimport { GraphToolInstance } from 'src/store/annotation/types';\nimport AttributeList from '@/components/attributeList';\nimport StepUtils from '@/utils/StepUtils';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n stepInfo: IStepInfo;\n}\n\nconst SwitchAttributeList: React.FC<IProps> = (props) => {\n const [_, forceRender] = useState(0);\n const listRef = useRef<HTMLElement>(null);\n const { toolInstance } = props;\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('changeAttributeSidebar', (index: number) => {\n forceRender((s) => s + 1);\n\n if (!listRef.current) {\n return;\n }\n\n listRef.current.children[index]?.scrollIntoView({ block: 'center' });\n });\n }\n return () => {\n toolInstance.unbindAll('changeAttributeSidebar');\n };\n }, [toolInstance, listRef]);\n\n const attributeChanged = useCallback(\n (v: string) => {\n toolInstance.setDefaultAttribute(v);\n forceRender((s) => s + 1);\n },\n [toolInstance],\n );\n\n if (!props.stepInfo) {\n return null;\n }\n\n const config = jsonParser(props.stepInfo.config);\n if (config.attributeConfigurable !== true) {\n return null;\n }\n\n if (toolInstance?.config?.attributeConfigurable === true && toolInstance?.config?.attributeList) {\n const list = toolInstance.config.attributeList.map((i: any) => ({\n label: i.key,\n value: i.value,\n }));\n list.unshift({ label: t('NoAttribute'), value: '' });\n\n return (\n <div>\n <AttributeList\n list={list}\n attributeChanged={attributeChanged}\n selectedAttribute={toolInstance?.defaultAttribute ?? ''}\n ref={listRef}\n />\n </div>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n\n return {\n toolInstance: state.annotation.toolInstance,\n stepInfo,\n };\n};\n\nexport default connect(mapStateToProps)(SwitchAttributeList);\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{EToolName as e}from"../../../data/enums/ToolType.js";import n from"react";import{sidebarCls as t}from"./index.js";import g from"../../../assets/annotation/lineTool/icon_line.svg.js";import p from"../../../assets/annotation/lineTool/icon_line_a.svg.js";import v from"../../../assets/annotation/pointTool/icon_point.svg.js";import _ from"../../../assets/annotation/pointTool/icon_point_a.svg.js";import d from"../../../assets/annotation/polygonTool/icon_polygon_a.svg.js";import N from"../../../assets/annotation/polygonTool/icon_polygon.svg.js";import T from"../../../assets/annotation/rectTool/icon_rect.svg.js";import f from"../../../assets/annotation/rectTool/icon_rect_a.svg.js";import{cTool as u}from"@labelbee/lb-annotation";import S from"classnames";const{EPointCloudName:$,TOOL_NAME:j}=u,m=[{toolName:e.Rect,commonSvg:T,selectedSvg:f},{toolName:e.Polygon,commonSvg:N,selectedSvg:d},{toolName:e.Line,commonSvg:g,selectedSvg:p},{toolName:e.Point,commonSvg:v,selectedSvg:_}],y=({toolName:s,selectedToolName:c,onChange:l})=>{const i=m==null?void 0:m.filter(o=>s===$.PointCloud?[e.Polygon,e.Rect].includes(o==null?void 0:o.toolName):(o==null?void 0:o.toolName)===s),r=i.length>1;return n.createElement("div",{className:`${t}__level`},i.map(o=>{const a=r&&c===o.toolName;return n.createElement("span",{className:`${t}__toolOption`,key:o.toolName,onClick:()=>l==null?void 0:l(o.toolName)},n.createElement("img",{className:`${t}__singleTool`,src:a?o==null?void 0:o.selectedSvg:o==null?void 0:o.commonSvg}),n.createElement("span",{className:S({[`${t}__toolOption__selected`]:a})},j[o.toolName]))}))};export{y 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';\n\nconst { EPointCloudName, TOOL_NAME } = 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\nexport const ToolIcons = ({\n toolName,\n selectedToolName,\n onChange,\n}: {\n toolName: string;\n selectedToolName?: string;\n onChange: (toolName: EToolName) => void;\n}) => {\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 {TOOL_NAME[tool.toolName]}\n </span>\n </span>\n );\n })}\n </div>\n );\n};\n"],"names":["rectSvg","rectASvg","PolygonSvg","PolygonASvg","lineSvg","lineASvg","pointSvg","pointASvg","classnames"],"mappings":";;;;;;;;;;;;;;AAoBA,MAAM,CAAE,iBAAiB,SAAc,CAAA,GAAA,KAAA,CAAA;AAEvC,MAAM,QAAW,GAAA;AAAA,EACf;AAAA,IACE,UAAU,SAAU,CAAA,IAAA;AAAA,IACpB,SAAW,EAAAA,GAAA;AAAA,IACX,WAAa,EAAAC,KAAA;AAAA,GAAA;AAAA,EAEf;AAAA,IACE,UAAU,SAAU,CAAA,OAAA;AAAA,IACpB,SAAW,EAAAC,KAAA;AAAA,IACX,WAAa,EAAAC,KAAA;AAAA,GAAA;AAAA,EAEf;AAAA,IACE,UAAU,SAAU,CAAA,IAAA;AAAA,IACpB,SAAW,EAAAC,KAAA;AAAA,IACX,WAAa,EAAAC,KAAA;AAAA,GAAA;AAAA,EAEf;AAAA,IACE,UAAU,SAAU,CAAA,KAAA;AAAA,IACpB,SAAW,EAAAC,KAAA;AAAA,IACX,WAAa,EAAAC,KAAA;AAAA,GAAA;AAAA,CAAA,CAAA;AAIV,MAAM,YAAY,CAAC;AAAA,EACxB,QAAA;AAAA,EACA,gBAAA;AAAA,EACA,QAAA;AAAA,CAKI,KAAA;AACJ,EAAA,MAAM,WAAc,GAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,MAAO,CAAA,CAAC,IAAS,KAAA;AAC7C,IAAI,IAAA,QAAA,KAAc,gBAAgB,UAAqC,EAAA;AACrE,MAAA,OAAO,CAAC,SAAU,CAAA,OAAA,EAAS,SAAU,CAAA,IAAA,CAAA,CAAM,SAAS,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AAAA,KAAA;AAG5D,IAAA,OAAO,8BAAM,QAAa,MAAA,QAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAG5B,EAAM,MAAA,aAAA,GAAgB,YAAY,MAAS,GAAA,CAAA,CAAA;AAE3C,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,WAAW,CAAG,EAAA,UAAA,CAAA,OAAA,CAAA;AAAA,GAChB,EAAA,WAAA,CAAY,GAAI,CAAA,CAAC,IAAS,KAAA;AACzB,IAAM,MAAA,UAAA,GAAa,aAAiB,IAAA,gBAAA,KAAqB,IAAK,CAAA,QAAA,CAAA;AAC9D,IAAA,2CACG,MAAD,EAAA;AAAA,MACE,WAAW,CAAG,EAAA,UAAA,CAAA,YAAA,CAAA;AAAA,MACd,KAAK,IAAK,CAAA,QAAA;AAAA,MACV,OAAA,EAAS,MAAM,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,IAAK,CAAA,QAAA,CAAA;AAAA,KAAA,sCAE9B,KAAD,EAAA;AAAA,MACE,WAAW,CAAG,EAAA,UAAA,CAAA,YAAA,CAAA;AAAA,MACd,GAAK,EAAA,UAAA,GAAa,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,WAAA,GAAc,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,SAAA;AAAA,KAAA,CAAA,sCAE7C,MAAD,EAAA;AAAA,MACE,WAAWC,UAAW,CAAA;AAAA,QAAA,CACnB,GAAG,UAAqC,CAAA,sBAAA,CAAA,GAAA,UAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAG1C,UAAU,IAAK,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{prefix as v}from"../../../constant/index.js";import{EToolName as o}from"../../../data/enums/ToolType.js";import A from"../../../utils/StepUtils.js";import{Collapse as c}from"antd/es";import e from"react";import{useTranslation as $}from"react-i18next";import{useSelector as y}from"react-redux";import _ from"./AnnotationText/index.js";import C from"./ClearIcon/index.js";import P,{PointCloudOperation as h}from"./GeneralOperation/index.js";import L from"./ImgAttributeInfo/index.js";import O from"./SwitchAttributeList/index.js";import m,{expandIconFuc as x}from"./TagSidebar/index.js";import b from"./TextToolSidebar/index.js";import R from"./PointCloudToolSidebar/index.js";import w from"./ToolStyle/index.js";import{cTool as z}from"@labelbee/lb-annotation";import{ToolIcons as B}from"./ToolIcons.js";const{EVideoToolName:G,EPointCloudName:K}=z,{Panel:S}=c,t=`${v}-sidebar`,U=({sider:l})=>{const s=y(r=>A.getCurrentStepInfo(r.annotation.step,r.annotation.stepList)),n=s==null?void 0:s.tool,{t:d}=$();if(!n)return null;const N=r=>{const j=e.createElement(w,null);return e.createElement(S,{header:d("Style"),className:"panel",key:r},j)},u=e.createElement(B,{toolName:n,onChange:()=>{}}),p=e.createElement(O,null),f=e.createElement(_,null),E=e.createElement(c,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:x},N("1")),T=e.createElement(c,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:x},e.createElement(S,{header:e.createElement("div",null,d("Adjust"),e.createElement(C,null)),className:"panel",key:"imgAttribute"},e.createElement(L,null))),a=e.createElement(P,null),I=e.createElement(m,null),g=e.createElement(b,null),i=e.createElement("div",{className:`${t}__horizontal`});return l?typeof l=="function"?e.createElement("div",{className:`${t}`},l({toolIcon:u,attributeList:p,annotationText:f,toolStyle:E,imageAttributeInfo:T,operation:a,tagToolSideBar:I,textToolSideBar:g,horizontal:i})):l:[o.Rect,o.Point,o.Line,o.Rect,o.Polygon].includes(n)?e.createElement("div",{className:`${t}`},u,i,p,f,i,e.createElement("div",{className:`${t}__content`},E,T),a):n===o.Tag?e.createElement("div",{className:`${t}`},e.createElement(m,null)):n===G.VideoTagTool?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(m,null)),a):n===o.Text?e.createElement("div",{className:`${t}`},e.createElement(b,null)):n===K.PointCloud?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(R,null)),e.createElement(h,null)):null};export{U 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 { useSelector } from 'react-redux';\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 { ToolIcons } from './ToolIcons';\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 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 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 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":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{backward as s,forward as i,scale as a,fullScreen as r}from"../common/index.js";import t from"../../../../../../assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js";import n from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js";import u from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js";import m from"../../../../../../assets/annotation/pointCloudTool/changePointCloudValid.svg.js";import e 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:[n],noticeInfo:"\u62D6\u52A8"},j={name:"\u70B9\u4E91\u5E73\u79FB",icon:t,shortCut:["Shift",n]},A={name:"\u4FEF\u89C6\u56FE\u5E73\u79FB",icon:t,shortCut:[u],noticeInfo:"\u62D6\u52A8"},x={name:"\u5207\u6362\u70B9\u4E91\u6709\u6548\u6027",icon:m,shortCut:["V"]},D={name:"\u590D\u5236\u6846",icon:e,shortCut:["Ctrl","C"]},R={name:"\u7C98\u8D34\u6846",icon:c,shortCut:["Ctrl","V"]},_={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"]},y={name:"\u4E0A\u4E00\u6846",icon:C,shortCut:["Z"]},I={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:e,shortCut:["Alt","C"]},k={name:"\u5207\u6362\u6807\u6CE8\u6846\u6709\u6548\u6027",icon:h,shortCut:["F"],noticeInfo:"\u9009\u4E2D\u65F6"},S={name:"\u591A\u9009",icon:d,shortCut:["Ctrl",u]},P={name:"\u5168\u9009",icon:p,shortCut:["Ctrl","A"]},w=[{name:"\u901A\u7528"},s,i,v,a,F,j,A,x,{name:"\u62C9\u6846\u6A21\u5F0F"},D,R,_,$,y,I,T,b,k,S,P,r];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: ['Shift', leftClick],\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{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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sources":["../../../../src/views/MainView/toolFooter/Pagination.tsx"],"sourcesContent":["import {\n LeftOutlined,\n RightOutlined,\n StepForwardFilled,\n StepBackwardFilled,\n} from '@ant-design/icons';\nimport
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../../src/views/MainView/toolFooter/Pagination.tsx"],"sourcesContent":["import { getClassName } from '@/utils/dom';\nimport {\n LeftOutlined,\n RightOutlined,\n StepForwardFilled,\n StepBackwardFilled,\n} from '@ant-design/icons';\nimport { Input } from 'antd';\nimport React, { useEffect, useRef, useState } from 'react';\n\ninterface IPageIconProps {\n isVideo?: boolean;\n iconProps: {\n onClick: () => void;\n className: string;\n };\n}\n\ninterface IPaginationProps {\n // current file page\n imgIndex: number;\n // number of total files\n totalPage: number;\n // redirect to target page\n pageJump: (page: string) => void;\n // to next page\n pageForward: () => void;\n // to prev page\n pageBackward: () => void;\n // footer classname\n footerCls: string;\n // whether file is video\n isVideo?: boolean;\n}\n\ninterface IPageProps {\n jumpSkip: Function;\n imgIndex: number;\n}\n\n/**\n * page input for changing current page or file index\n * @param props\n * @returns\n */\nexport const PageInput = (props: IPageProps) => {\n const { jumpSkip, imgIndex } = props;\n const [newIndex, setIndex] = useState(imgIndex);\n const inputEl = useRef(null);\n\n useEffect(() => {\n setIndex(imgIndex + 1);\n }, [imgIndex]);\n\n const newHandleJump = (e: any) => {\n const reg = /^\\d*$/;\n if (reg.test(e.target.value)) {\n setIndex(e.target.value);\n }\n };\n\n const newJumpSkip = (e: any) => {\n if (e.keyCode === 13) {\n jumpSkip(e.target.value);\n }\n };\n\n return (\n <Input\n className={getClassName('page-input')}\n ref={inputEl}\n onChange={newHandleJump}\n value={newIndex}\n onKeyDown={newJumpSkip}\n />\n );\n};\n\n/**\n * Next page icon\n * @param props\n * @returns\n */\nconst NextPage: React.FC<IPageIconProps> = (props) =>\n props.isVideo ? (\n <StepForwardFilled {...props.iconProps} />\n ) : (\n <RightOutlined {...props.iconProps} />\n );\n\n/**\n * Prev page icon\n * @param props\n * @returns\n */\nconst PrevPage: React.FC<IPageIconProps> = (props) =>\n props.isVideo ? (\n <StepBackwardFilled {...props.iconProps} />\n ) : (\n <LeftOutlined {...props.iconProps} />\n );\n\nexport const Pagination: React.FC<IPaginationProps> = ({\n pageBackward,\n imgIndex,\n pageJump,\n totalPage,\n pageForward,\n isVideo,\n footerCls,\n}) => {\n return (\n <div className={`${footerCls}__pagination`}>\n <PrevPage\n isVideo={isVideo}\n iconProps={{\n className: `${footerCls}__highlight`,\n onClick: pageBackward,\n }}\n />\n <PageInput imgIndex={imgIndex} jumpSkip={pageJump} />/\n <span className={`${footerCls}__pageAll`}>{totalPage}</span>\n <NextPage\n isVideo={isVideo}\n iconProps={{\n className: `${footerCls}__highlight`,\n onClick: pageForward,\n }}\n />\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import m,{useEffect as n}from"react";import{connect as s}from"react-redux";import c from"../../../../../hooks/useSafeSate.js";const f=({toolInstance:e})=>{var o;const[,t]=c(0);n(()=>{e&&e.
|
|
1
|
+
import m,{useEffect as n}from"react";import{connect as s}from"react-redux";import c from"../../../../../hooks/useSafeSate.js";const f=({toolInstance:e})=>{var o;const[,t]=c(0);n(()=>{e&&e.on("renderZoom",()=>{t(a=>a+1)})},[e]);const r=(o=e==null?void 0:e.zoom)!=null?o:1;return m.createElement("span",{className:"zoomValue"},(r*100).toFixed(1),"%")},u=e=>({toolInstance:e.annotation.toolInstance});var l=s(u)(f);export{l as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/views/MainView/toolFooter/ZoomController/ZoomLevel/index.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from '@/store';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport useSafeState from '@/hooks/useSafeSate';\n\ninterface IProps {\n toolInstance: ToolInstance;\n}\n\nconst ZoomLevel: React.FC<IProps> = ({ toolInstance }) => {\n const [, forceRender] = useSafeState<number>(0);\n useEffect(() => {\n if (toolInstance) {\n // 这里会有内存泄漏的问题 useSafeState 用这个解决下\n toolInstance.
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/views/MainView/toolFooter/ZoomController/ZoomLevel/index.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from '@/store';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport useSafeState from '@/hooks/useSafeSate';\n\ninterface IProps {\n toolInstance: ToolInstance;\n}\n\nconst ZoomLevel: React.FC<IProps> = ({ toolInstance }) => {\n const [, forceRender] = useSafeState<number>(0);\n useEffect(() => {\n if (toolInstance) {\n // 这里会有内存泄漏的问题 useSafeState 用这个解决下\n toolInstance.on('renderZoom', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n const zoom = toolInstance?.zoom ?? 1;\n\n return <span className='zoomValue'>{(zoom * 100).toFixed(1)}%</span>;\n};\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n});\n\nexport default connect(mapStateToProps)(ZoomLevel);\n"],"names":[],"mappings":";;;;AAUA,MAAM,SAAA,GAA8B,CAAC,CAAE,YAAmB,CAAA,KAAA;AAV1D,EAAA,IAAA,EAAA,CAAA;AAWE,EAAM,MAAA,GAAG,WAAA,CAAA,GAAe,YAAqB,CAAA,CAAA,CAAA,CAAA;AAC7C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAc,EAAA;AAEhB,MAAa,YAAA,CAAA,EAAA,CAAG,cAAc,MAAM;AAClC,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,EAAM,MAAA,IAAA,GAAO,CAAc,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,IAAA,KAAd,IAAsB,GAAA,EAAA,GAAA,CAAA,CAAA;AAEnC,EAAA,2CAAQ,MAAD,EAAA;AAAA,IAAM,SAAU,EAAA,WAAA;AAAA,GAAc,EAAA,CAAA,IAAA,GAAO,GAAK,EAAA,OAAA,CAAQ,CAAG,CAAA,EAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAG9D,MAAM,eAAA,GAAkB,CAAC,KAAqB,MAAA;AAAA,EAC5C,YAAA,EAAc,MAAM,UAAW,CAAA,YAAA;AAAA,CAAA,CAAA,CAAA;AAGjC,kBAAe,QAAQ,eAAiB,CAAA,CAAA,SAAA,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import o from"react";import
|
|
1
|
+
import o from"react";import s from"../../../../assets/annotation/common/icon_adapt.svg.js";import c from"../../../../assets/annotation/common/icon_adapt_black.svg.js";import{MinusOutlined as i,PlusOutlined as d}from"@ant-design/icons";import{connect as u}from"react-redux";import g from"./ZoomLevel/index.js";import{footerCls as a}from"../index.js";const m=({mode:e,initialPosition:t,zoomOut:n,zoomIn:l})=>{const r=e==="light"?s:c;return o.createElement("div",null,o.createElement("span",{className:`${a}__zoomController`},o.createElement(i,{className:`${a}__highlight`,onClick:()=>{n==null||n()}}),o.createElement("span",{className:`${a}__zoomText`,onClick:()=>{t==null||t()}},o.createElement("img",{src:r,className:"adaptIcon"}),o.createElement(g,null)),o.createElement(d,{className:`${a}__highlight`,onClick:()=>{l==null||l()}})))},p=({toolInstance:e})=>{const t=()=>{e.initImgPos()},n=()=>{e.zoomChanged(!1)},l=()=>{e.zoomChanged(!0)};return o.createElement(m,{initialPosition:t,zoomIn:l,zoomOut:n})};var f=u(e=>({toolInstance:e.annotation.toolInstance}))(p);export{m as ZoomController,f as default};
|