@labelbee/lb-components 1.6.0-alpha.9 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.js +1 -1
- package/dist/components/AnnotationView/index.js +1 -1
- package/dist/components/AnnotationView/pointCloudAnnotationView.js +1 -1
- package/dist/components/customResizeHook/index.js +1 -1
- package/dist/components/pointCloudView/PointCloud2DView.js +1 -1
- package/dist/components/pointCloudView/PointCloudBackView.js +1 -1
- package/dist/components/pointCloudView/PointCloudListener.js +1 -1
- package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
- package/dist/components/pointCloudView/hooks/useBoxes.js +1 -1
- package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
- package/dist/components/pointCloudView/hooks/useRotate.js +1 -1
- package/dist/components/pointCloudView/hooks/useSingleBox.js +1 -1
- package/dist/hooks/annotation.js +1 -1
- package/dist/hooks/useRefCache.js +1 -0
- package/dist/index.css +11 -1
- package/dist/store/Actions.js +1 -1
- package/dist/store/annotation/actionCreators.js +1 -1
- package/dist/store/annotation/map.js +1 -1
- package/dist/store/annotation/reducer.js +1 -1
- package/dist/types/App.d.ts +2 -0
- package/dist/types/components/AnnotationView/index.d.ts +2 -0
- package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +2 -2
- package/dist/types/components/pointCloudView/hooks/useSingleBox.d.ts +1 -0
- package/dist/types/components/videoPlayer/TagToolInstanceAdaptor.d.ts +1 -1
- package/dist/types/components/videoPlayer/index.d.ts +1 -1
- package/dist/types/components/videoPlayer/types.d.ts +1 -1
- package/dist/types/hooks/annotation.d.ts +1 -0
- package/dist/types/hooks/useRefCache.d.ts +8 -0
- package/dist/types/store/Actions.d.ts +2 -0
- package/dist/types/store/annotation/actionCreators.d.ts +8 -6
- package/dist/types/store/annotation/reducer.d.ts +1 -1
- package/dist/types/store/annotation/types.d.ts +4 -3
- package/dist/types/store/imgAttribute/types.d.ts +1 -1
- package/dist/types/store/index.d.ts +1 -1
- package/dist/types/store/toolStyle/types.d.ts +1 -1
- package/dist/types/utils/PageOperator.d.ts +1 -1
- package/dist/types/utils/dom.d.ts +3 -3
- package/dist/types/views/MainView/annotationTips/index.d.ts +3 -2
- package/dist/types/views/MainView/sidebar/ToolStyle/index.d.ts +1 -1
- package/dist/types/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.d.ts +6 -0
- package/dist/types/views/MainView/toolFooter/index.d.ts +1 -1
- package/dist/types/views/MainView/toolHeader/ExportData/index.d.ts +1 -1
- package/dist/views/MainView/annotationOperation/index.js +1 -1
- package/dist/views/MainView/annotationTips/index.js +1 -1
- package/dist/views/MainView/index.js +1 -1
- package/dist/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -1
- package/dist/views/MainView/sidebar/GeneralOperation/index.js +1 -1
- package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
- package/dist/views/MainView/sidebar/ScribbleSidebar/index.js +1 -1
- package/dist/views/MainView/sidebar/index.js +1 -1
- package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
- package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -1
- package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js +1 -0
- package/dist/views/MainView/toolFooter/index.js +1 -1
- package/es/App.js +1 -1
- package/es/App.js.map +1 -1
- package/es/assets/annotation/pointCloudTool/unitAttribute.svg.js +4 -0
- package/es/assets/annotation/pointCloudTool/unitAttribute.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/unitAttributeForbid.svg.js +4 -0
- package/es/assets/annotation/pointCloudTool/unitAttributeForbid.svg.js.map +1 -0
- package/es/assets/annotation/pointCloudTool/unitAttributeHover.svg.js +4 -0
- package/es/assets/annotation/pointCloudTool/unitAttributeHover.svg.js.map +1 -0
- package/es/assets/annotation/toolHotKeyIcon/icon_copyBackwardResult.svg.js +4 -0
- package/es/assets/annotation/toolHotKeyIcon/icon_copyBackwardResult.svg.js.map +1 -0
- package/es/components/AnnotationView/index.js +1 -1
- package/es/components/AnnotationView/index.js.map +1 -1
- package/es/components/AnnotationView/pointCloudAnnotationView.js +1 -1
- package/es/components/AnnotationView/pointCloudAnnotationView.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 -1
- package/es/components/pointCloudView/PointCloud2DView.js.map +1 -1
- package/es/components/pointCloudView/PointCloudBackView.js +1 -1
- package/es/components/pointCloudView/PointCloudBackView.js.map +1 -1
- package/es/components/pointCloudView/PointCloudListener.js +1 -1
- package/es/components/pointCloudView/PointCloudListener.js.map +1 -1
- package/es/components/pointCloudView/PointCloudTopView.js +1 -1
- package/es/components/pointCloudView/PointCloudTopView.js.map +1 -1
- package/es/components/pointCloudView/components/UnifiedParamsModal/index.js +228 -0
- package/es/components/pointCloudView/components/UnifiedParamsModal/index.js.map +1 -0
- package/es/components/pointCloudView/components/UnifyParamsModal/index.js +234 -0
- package/es/components/pointCloudView/components/UnifyParamsModal/index.js.map +1 -0
- package/es/components/pointCloudView/hooks/useAttribute.js +44 -0
- package/es/components/pointCloudView/hooks/useAttribute.js.map +1 -0
- package/es/components/pointCloudView/hooks/useBoxes.js +1 -1
- package/es/components/pointCloudView/hooks/useBoxes.js.map +1 -1
- package/es/components/pointCloudView/hooks/useConfig.js +24 -0
- package/es/components/pointCloudView/hooks/useConfig.js.map +1 -0
- package/es/components/pointCloudView/hooks/useHistory.js +121 -0
- package/es/components/pointCloudView/hooks/useHistory.js.map +1 -0
- package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
- package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -1
- package/es/components/pointCloudView/hooks/useRotate.js +1 -1
- package/es/components/pointCloudView/hooks/useRotate.js.map +1 -1
- package/es/components/pointCloudView/hooks/useSingleBox.js +1 -1
- package/es/components/pointCloudView/hooks/useSingleBox.js.map +1 -1
- package/es/hooks/annotation.js +1 -1
- package/es/hooks/annotation.js.map +1 -1
- package/es/hooks/useConfig.js +18 -0
- package/es/hooks/useConfig.js.map +1 -0
- package/es/hooks/useRefCache.js +1 -0
- package/es/hooks/useRefCache.js.map +1 -0
- package/es/index.css +11 -1
- package/es/store/Actions.js +1 -1
- package/es/store/Actions.js.map +1 -1
- package/es/store/annotation/actionCreators.js +1 -1
- package/es/store/annotation/actionCreators.js.map +1 -1
- package/es/store/annotation/map.js +1 -1
- package/es/store/annotation/map.js.map +1 -1
- package/es/store/annotation/reducer.js +1 -1
- package/es/store/annotation/reducer.js.map +1 -1
- package/es/utils/dom.js.map +1 -1
- package/es/views/MainView/annotationOperation/index.js +1 -1
- package/es/views/MainView/annotationOperation/index.js.map +1 -1
- package/es/views/MainView/annotationTips/index.js +1 -1
- package/es/views/MainView/annotationTips/index.js.map +1 -1
- package/es/views/MainView/index.js +1 -1
- package/es/views/MainView/index.js.map +1 -1
- package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -1
- package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js.map +1 -1
- 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 -1
- package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js +122 -0
- package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js.map +1 -0
- package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
- package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -1
- package/es/views/MainView/sidebar/ScribbleSidebar/index.js +1 -1
- package/es/views/MainView/sidebar/ScribbleSidebar/index.js.map +1 -1
- package/es/views/MainView/sidebar/index.js +1 -1
- package/es/views/MainView/sidebar/index.js.map +1 -1
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -1
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -1
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js.map +1 -1
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js +1 -0
- package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js.map +1 -0
- package/es/views/MainView/toolFooter/index.js +1 -1
- package/es/views/MainView/toolFooter/index.js.map +1 -1
- package/package.json +4 -5
- package/LICENSE +0 -203
|
@@ -1 +1 @@
|
|
|
1
|
-
import r from"react";import{connect as a}from"react-redux";import
|
|
1
|
+
import r from"react";import{connect as a}from"react-redux";import u from"../../../../utils/StepUtils.js";import{jsonParser as m}from"../../../../utils/index.js";import s from"./ActionsConfirm.js";import l from"./useOperationList.js";import{LabelBeeContext as p}from"../../../../store/ctx.js";const c=o=>{var n,t;const e=u.getCurrentStepInfo((n=o.annotation)==null?void 0:n.step,(t=o.annotation)==null?void 0:t.stepList);return{toolInstance:o.annotation.toolInstance,stepInfo:e,imgList:o.annotation.imgList,imgIndex:o.annotation.imgIndex}},d=({toolInstance:o,stepInfo:n})=>{const t=l(o),e=m(n==null?void 0:n.config),i=[t.empty];return(n==null?void 0:n.dataSourceStep)===0&&i.push(t.setValidity),(e==null?void 0:e.copyBackwardResult)&&i.push(t.copyPrevious),r.createElement(s,{allOperation:i})},f=a(c,null,null,{context:p})(({toolInstance:o,stepInfo:n})=>{const t=l(o),e=[t.copyPrevious,t.empty,t.setValidity];return r.createElement(s,{allOperation:e})});var v=a(c,null,null,{context:p})(d);export{f as PointCloudOperation,v as default};
|
|
@@ -1 +1 @@
|
|
|
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';\nimport { LabelBeeContext } from '@/store/ctx';\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
|
|
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';\nimport { LabelBeeContext } from '@/store/ctx';\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, null, null, { context: LabelBeeContext })(\n ({ 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);\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(GeneralOperation);\n"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AAZ7C,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAaE,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;AAGZ,MAAA,mBAAA,GAQT,OAAQ,CAAA,eAAA,EAAiB,IAAM,EAAA,IAAA,EAAM,CAAE,OAAA,EAAS,eAClD,CAAA,CAAA,CAAA,CAAC,CAAE,YAAA,EAAc,QAAe,CAAA,KAAA;AAC9B,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;AAI3B,yBAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAAmB,CAAA,CAAA,CAAA,gBAAA,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import y from"../../../../assets/annotation/common/icon_clear.svg.js";import _ from"../../../../assets/annotation/common/icon_clear_a.svg.js";import S from"../../../../assets/annotation/common/icon_invalid.svg.js";import h from"../../../../assets/annotation/common/icon_invalid_a.svg.js";import{StopOutlined as a}from"@ant-design/icons";import{useTranslation as j}from"react-i18next";import s,{
|
|
1
|
+
import y from"../../../../assets/annotation/common/icon_clear.svg.js";import _ from"../../../../assets/annotation/common/icon_clear_a.svg.js";import S from"../../../../assets/annotation/common/icon_invalid.svg.js";import h from"../../../../assets/annotation/common/icon_invalid_a.svg.js";import{StopOutlined as a}from"@ant-design/icons";import{useTranslation as j}from"react-i18next";import s,{useState as O,useMemo as P}from"react";import{CopyBackWordResult as x}from"../../../../store/annotation/actionCreators.js";import{store as C}from"../../../../index.js";import{useSelector as k}from"../../../../store/ctx.js";var w=Object.defineProperty,m=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,E=Object.prototype.propertyIsEnumerable,c=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))V.call(t,r)&&c(e,r,t[r]);if(m)for(var r of m(t))E.call(t,r)&&c(e,r,t[r]);return e};const b=e=>{const[t,r]=O(0),{t:o,i18n:l}=j(),{currentData:p}=k(i=>{const{imgList:g,imgIndex:d}=i.annotation;return{currentData:g[d]}}),n={height:"25px",lineHeight:"25px",display:"flex",justifyContent:"center",alignItems:"center"},u={name:o("ClearLabel"),key:"empty",imgSvg:y,hoverSvg:_,onClick:()=>{e==null||e.clearResult()}},v={name:o((e==null?void 0:e.valid)===!1?"SetAsValid":"SetAsInvalid"),key:"setValidity",imgSvg:s.createElement(a,{style:n}),hoverSvg:s.createElement(a,{style:R({color:"#666fff"},n)}),onClick:()=>{e.setValid(!e.valid),setTimeout(()=>{r(i=>i+1)})}},f={name:o("CopyThePrevious"),key:"copyPrevious",imgSvg:S,hoverSvg:h,onClick:()=>{C.dispatch(x())}};return P(()=>({empty:u,setValidity:v,copyPrevious:f}),[e,t,p,l.language])};export{b as default};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { BatchUpdateTrackID } from '../../../../../../store/annotation/actionCreators.js';
|
|
2
|
+
import { composeResultByToolInstance } from '../../../../../../store/annotation/reducer.js';
|
|
3
|
+
import { LabelBeeContext, useDispatch } from '../../../../../../store/ctx.js';
|
|
4
|
+
import { Form, Modal, InputNumber } from 'antd';
|
|
5
|
+
import React, { useState } from 'react';
|
|
6
|
+
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import { connect } from 'react-redux';
|
|
8
|
+
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __defProps = Object.defineProperties;
|
|
11
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
12
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
15
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
|
|
16
|
+
var __spreadValues = (a, b) => {
|
|
17
|
+
for (var prop in b || (b = {}))
|
|
18
|
+
if (__hasOwnProp.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
if (__getOwnPropSymbols)
|
|
21
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
22
|
+
if (__propIsEnum.call(b, prop))
|
|
23
|
+
__defNormalProp(a, prop, b[prop]);
|
|
24
|
+
}
|
|
25
|
+
return a;
|
|
26
|
+
};
|
|
27
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
28
|
+
const layout = {
|
|
29
|
+
labelCol: {span: 8},
|
|
30
|
+
wrapperCol: {span: 16}
|
|
31
|
+
};
|
|
32
|
+
const inputStyle = {
|
|
33
|
+
width: "80px"
|
|
34
|
+
};
|
|
35
|
+
const BatchUpdateModal = ({id, stepList, imgList, imgIndex, toolInstance}) => {
|
|
36
|
+
const dispatch = useDispatch();
|
|
37
|
+
const [visible, setVisible] = useState(false);
|
|
38
|
+
const [form] = Form.useForm();
|
|
39
|
+
const {t} = useTranslation();
|
|
40
|
+
const onFinish = (values) => {
|
|
41
|
+
dispatch(BatchUpdateTrackID({
|
|
42
|
+
id,
|
|
43
|
+
newID: values.newID,
|
|
44
|
+
rangeIndex: [values.prevPage - 1, values.nextPage - 1],
|
|
45
|
+
imgList: composeResultByToolInstance({toolInstance, imgList, imgIndex, stepList})
|
|
46
|
+
}));
|
|
47
|
+
setVisible(false);
|
|
48
|
+
};
|
|
49
|
+
const onCancel = () => setVisible(false);
|
|
50
|
+
const onOk = () => form.submit();
|
|
51
|
+
const defaultNumberRules = [{required: true, message: t("PositiveIntegerCheck")}];
|
|
52
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("a", {
|
|
53
|
+
style: {color: "#666FFF"},
|
|
54
|
+
onClick: () => setVisible(true)
|
|
55
|
+
}, t("BatchUpdateText")), /* @__PURE__ */ React.createElement(Modal, {
|
|
56
|
+
title: t("BatchUpdateTrackID"),
|
|
57
|
+
visible,
|
|
58
|
+
onCancel,
|
|
59
|
+
onOk,
|
|
60
|
+
wrapClassName: "labelbee-custom-modal"
|
|
61
|
+
}, /* @__PURE__ */ React.createElement(Form, __spreadProps(__spreadValues({}, layout), {
|
|
62
|
+
form,
|
|
63
|
+
onFinish
|
|
64
|
+
}), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
65
|
+
name: "id",
|
|
66
|
+
label: t("CurrentBoxTrackIDs")
|
|
67
|
+
}, id), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
68
|
+
name: "newID",
|
|
69
|
+
label: t("TrackIDUnifyAs"),
|
|
70
|
+
rules: defaultNumberRules
|
|
71
|
+
}, /* @__PURE__ */ React.createElement(InputNumber, {
|
|
72
|
+
precision: 0,
|
|
73
|
+
min: 1,
|
|
74
|
+
style: inputStyle
|
|
75
|
+
})), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
76
|
+
label: t("UnifyTrackIDRange"),
|
|
77
|
+
required: true
|
|
78
|
+
}, /* @__PURE__ */ React.createElement(Form.Item, {
|
|
79
|
+
style: {display: "inline-block"},
|
|
80
|
+
rules: defaultNumberRules,
|
|
81
|
+
name: "prevPage",
|
|
82
|
+
noStyle: true
|
|
83
|
+
}, /* @__PURE__ */ React.createElement(InputNumber, {
|
|
84
|
+
precision: 0,
|
|
85
|
+
min: 1,
|
|
86
|
+
style: inputStyle
|
|
87
|
+
})), /* @__PURE__ */ React.createElement("span", {
|
|
88
|
+
style: {
|
|
89
|
+
display: "inline-block",
|
|
90
|
+
width: "24px",
|
|
91
|
+
textAlign: "center"
|
|
92
|
+
}
|
|
93
|
+
}, "-"), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
94
|
+
style: {display: "inline-block"},
|
|
95
|
+
rules: defaultNumberRules,
|
|
96
|
+
name: "nextPage",
|
|
97
|
+
noStyle: true
|
|
98
|
+
}, /* @__PURE__ */ React.createElement(InputNumber, {
|
|
99
|
+
precision: 0,
|
|
100
|
+
min: 1,
|
|
101
|
+
style: inputStyle
|
|
102
|
+
})), /* @__PURE__ */ React.createElement("span", {
|
|
103
|
+
style: {
|
|
104
|
+
display: "inline-block",
|
|
105
|
+
width: "40x",
|
|
106
|
+
marginLeft: "10px",
|
|
107
|
+
textAlign: "center"
|
|
108
|
+
}
|
|
109
|
+
}, t("Page"))))));
|
|
110
|
+
};
|
|
111
|
+
const mapStateToProps = (state) => {
|
|
112
|
+
return {
|
|
113
|
+
toolInstance: state.annotation.toolInstance,
|
|
114
|
+
imgList: state.annotation.imgList,
|
|
115
|
+
imgIndex: state.annotation.imgIndex,
|
|
116
|
+
stepList: state.annotation.stepList
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
var BatchUpdateModal$1 = connect(mapStateToProps, null, null, {context: LabelBeeContext})(BatchUpdateModal);
|
|
120
|
+
|
|
121
|
+
export { BatchUpdateModal$1 as default };
|
|
122
|
+
//# sourceMappingURL=index.js.map
|
package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.tsx"],"sourcesContent":["import { AppState } from '@/store';\nimport { BatchUpdateTrackID } from '@/store/annotation/actionCreators';\nimport { composeResultByToolInstance } from '@/store/annotation/reducer';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { LabelBeeContext, useDispatch } from '@/store/ctx';\nimport { AnnotationFileList } from '@/types/data';\nimport { IStepInfo } from '@/types/step';\nimport { Form, InputNumber, Modal } from 'antd';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\n\nconst layout = {\n labelCol: { span: 8 },\n wrapperCol: { span: 16 },\n};\n\n/**\n * 检查当前数字是否为有效数字\n * @param value\n * @param nonZero 是否包括 0\n * @returns\n */\nexport const isInvalidNumber = (value: any, nonZero = false) => {\n const intValue = Number(value);\n if (typeof value === 'undefined' || intValue < 0 || isNaN(intValue)) {\n return true;\n }\n if (nonZero === true && intValue === 0) {\n return true;\n }\n return false;\n};\n\ninterface IProps {\n id: number;\n toolInstance: ToolInstance;\n imgList: AnnotationFileList;\n imgIndex: number;\n stepList: IStepInfo[];\n}\n\nconst inputStyle = {\n width: '80px',\n};\n\nconst BatchUpdateModal = ({ id, stepList, imgList, imgIndex, toolInstance }: IProps) => {\n const dispatch = useDispatch();\n const [visible, setVisible] = useState(false);\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n const onFinish = (values: any) => {\n // New ImgList without UpdateData\n dispatch(\n BatchUpdateTrackID({\n id,\n newID: values.newID,\n rangeIndex: [values.prevPage - 1, values.nextPage - 1],\n // TODO: Not to submit result, just to compose result.\n imgList: composeResultByToolInstance({ toolInstance, imgList, imgIndex, stepList }),\n }),\n );\n setVisible(false);\n };\n\n const onCancel = () => setVisible(false);\n\n const onOk = () => form.submit();\n const defaultNumberRules = [{ required: true, message: t('PositiveIntegerCheck') }];\n\n return (\n <>\n <a style={{ color: '#666FFF' }} onClick={() => setVisible(true)}>\n {t('BatchUpdateText')}\n </a>\n <Modal\n title={t('BatchUpdateTrackID')}\n visible={visible}\n onCancel={onCancel}\n onOk={onOk}\n wrapClassName='labelbee-custom-modal'\n >\n <Form {...layout} form={form} onFinish={onFinish}>\n <Form.Item name='id' label={t('CurrentBoxTrackIDs')}>\n {id}\n </Form.Item>\n\n <Form.Item name='newID' label={t('TrackIDUnifyAs')} rules={defaultNumberRules}>\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <Form.Item label={t('UnifyTrackIDRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='prevPage'\n noStyle={true}\n >\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n textAlign: 'center',\n }}\n >\n -\n </span>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='nextPage'\n noStyle={true}\n >\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '40x',\n marginLeft: '10px',\n textAlign: 'center',\n }}\n >\n {t('Page')}\n </span>\n </Form.Item>\n </Form>\n </Modal>\n </>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation.toolInstance,\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n stepList: state.annotation.stepList,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(BatchUpdateModal);\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useContext as y}from"react";import{ToolIcons as S}from"../ToolIcons.js";import{cTool as x}from"@labelbee/lb-annotation";import{PointCloudContext as b}from"../../../../components/pointCloudView/PointCloudContext.js";import{Row as f,Col as d,Radio as C,Select as g}from"antd";import E from"../../../../utils/StepUtils.js";import{connect as P}from"react-redux";import{jsonParser as B}from"../../../../utils/index.js";import{useStatus as h}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as j}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as T}from"react-i18next";import{LabelBeeContext as k}from"../../../../store/ctx.js";const _=({attributeList:r,subAttributeList:i,toolInstance:n})=>{var l;const s=y(b),{t:o}=T(),c={fontWeight:400,fontSize:14,marginBottom:14},a=t=>{n.setDefaultAttribute(t)},p=(t,u)=>{n.setSubAttribute(t,u)};return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:20,fontSize:14,fontWeight:500}},o("Tag")),e.createElement(f,{style:{marginBottom:12}},e.createElement(d,{span:9,style:c},o("Attribute")),e.createElement(d,{span:15},e.createElement(C.Group,{style:{width:"100%"},value:(l=s.selectedPointCloudBox)==null?void 0:l.attribute,onChange:t=>a(t.target.value)},r.map(t=>e.createElement(C,{key:t.value,value:t.value,style:{marginBottom:16}},t.key))))),e.createElement("div",{style:c}," ",o("SubAttribute")),i.map(t=>{var u,v;return(t==null?void 0:t.subSelected)&&e.createElement(f,{key:t.value,style:{marginBottom:18}},e.createElement(d,{span:9,style:{color:"#999999",display:"flex",justifyContent:"flex-start",alignItems:"center"}},t.key),e.createElement(d,{span:15},e.createElement(g,{style:{width:"100%"},bordered:!1,value:(v=(u=s.selectedPointCloudBox)==null?void 0:u.subAttribute)==null?void 0:v[t.value],placeholder:o("PleaseSelect"),onChange:m=>p(t.value,m)},t.subSelected.map(m=>e.createElement(g.Option,{key:m.value,value:m.value},m.key)))))}))},w=({stepInfo:r,toolInstance:i})=>{var n,l;const{selectedBox:s}=j(),{updatePointCloudPattern:o,pointCloudPattern:c}=h(),a=B(r.config),p=(n=a==null?void 0:a.attributeList)!=null?n:[],t=(a==null?void 0:a.secondaryAttributeConfigurable)===!0?(l=a==null?void 0:a.inputList)!=null?l:[]:[];return e.createElement(e.Fragment,null,e.createElement(S,{toolName:x.EPointCloudName.PointCloud,selectedToolName:c,onChange:u=>o==null?void 0:o(u)}),s&&e.createElement(_,{toolInstance:i,attributeList:p,subAttributeList:t}))},I=r=>{var i,n,l;const s=E.getCurrentStepInfo((i=r.annotation)==null?void 0:i.step,(n=r.annotation)==null?void 0:n.stepList),o=(l=r.annotation)==null?void 0:l.toolInstance;return{stepInfo:s,toolInstance:o}};var L=P(I,null,null,{context:k})(w);export{L as default};
|
|
1
|
+
import e,{useContext as y}from"react";import{ToolIcons as S}from"../ToolIcons.js";import{cTool as x}from"@labelbee/lb-annotation";import{PointCloudContext as b}from"../../../../components/pointCloudView/PointCloudContext.js";import{Row as f,Col as d,Radio as C,Select as g}from"antd";import E from"../../../../utils/StepUtils.js";import{connect as P}from"react-redux";import{jsonParser as B}from"../../../../utils/index.js";import{useStatus as h}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as j}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as T}from"react-i18next";import{LabelBeeContext as k}from"../../../../store/ctx.js";const _=({attributeList:r,subAttributeList:i,toolInstance:n})=>{var l;const s=y(b),{t:o}=T(),c={fontWeight:400,fontSize:14,marginBottom:14},a=t=>{n.setDefaultAttribute(t)},p=(t,u)=>{n.setSubAttribute(t,u)};return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:20,fontSize:14,fontWeight:500}},o("Tag")),e.createElement(f,{style:{marginBottom:12}},e.createElement(d,{span:9,style:c},o("Attribute")),e.createElement(d,{span:15},e.createElement(C.Group,{style:{width:"100%"},value:(l=s.selectedPointCloudBox)==null?void 0:l.attribute,onChange:t=>a(t.target.value)},r.map(t=>e.createElement(C,{key:t.value,value:t.value,style:{marginBottom:16}},t.key))))),e.createElement("div",{style:c}," ",o("SubAttribute")),i.map(t=>{var u,v;return(t==null?void 0:t.subSelected)&&e.createElement(f,{key:t.value,style:{marginBottom:18}},e.createElement(d,{span:9,style:{color:"#999999",display:"flex",justifyContent:"flex-start",alignItems:"center"}},t.key),e.createElement(d,{span:15},e.createElement(g,{style:{width:"100%"},bordered:!1,value:(v=(u=s.selectedPointCloudBox)==null?void 0:u.subAttribute)==null?void 0:v[t.value],placeholder:o("PleaseSelect"),onChange:m=>p(t.value,m),allowClear:!0},t.subSelected.map(m=>e.createElement(g.Option,{key:m.value,value:m.value},m.key)))))}))},w=({stepInfo:r,toolInstance:i})=>{var n,l;const{selectedBox:s}=j(),{updatePointCloudPattern:o,pointCloudPattern:c}=h(),a=B(r.config),p=(n=a==null?void 0:a.attributeList)!=null?n:[],t=(a==null?void 0:a.secondaryAttributeConfigurable)===!0?(l=a==null?void 0:a.inputList)!=null?l:[]:[];return e.createElement(e.Fragment,null,e.createElement(S,{toolName:x.EPointCloudName.PointCloud,selectedToolName:c,onChange:u=>o==null?void 0:o(u)}),s&&e.createElement(_,{toolInstance:i,attributeList:p,subAttributeList:t}))},I=r=>{var i,n,l;const s=E.getCurrentStepInfo((i=r.annotation)==null?void 0:i.step,(n=r.annotation)==null?void 0:n.stepList),o=(l=r.annotation)==null?void 0:l.toolInstance;return{stepInfo:s,toolInstance:o}};var L=P(I,null,null,{context:k})(w);export{L as default};
|
|
@@ -1 +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';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\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 const { t } = useTranslation();\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 }}>{t('Tag')}</div>\n <Row style={{ marginBottom: 12 }}>\n <Col span={9} style={titleStyle}>\n {t('Attribute')}\n </Col>\n <Col span={15}>\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}> {t('SubAttribute')}</div>\n {subAttributeList.map(\n (subAttribute) =>\n subAttribute?.subSelected && (\n <Row key={subAttribute.value} style={{ marginBottom: 18 }}>\n <Col\n span={9}\n style={{\n color: '#999999',\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }}\n >\n {subAttribute.key}\n </Col>\n <Col span={15}>\n <Select\n style={{ width: '100%' }}\n bordered={false}\n value={ptx.selectedPointCloudBox?.subAttribute?.[subAttribute.value]}\n placeholder={t('PleaseSelect')}\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 )}\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, null, null, { context: LabelBeeContext })(\n PointCloudToolSidebar,\n);\n"],"names":[],"mappings":"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"}
|
|
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';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\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 const { t } = useTranslation();\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 }}>{t('Tag')}</div>\n <Row style={{ marginBottom: 12 }}>\n <Col span={9} style={titleStyle}>\n {t('Attribute')}\n </Col>\n <Col span={15}>\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}> {t('SubAttribute')}</div>\n {subAttributeList.map(\n (subAttribute) =>\n subAttribute?.subSelected && (\n <Row key={subAttribute.value} style={{ marginBottom: 18 }}>\n <Col\n span={9}\n style={{\n color: '#999999',\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }}\n >\n {subAttribute.key}\n </Col>\n <Col span={15}>\n <Select\n style={{ width: '100%' }}\n bordered={false}\n value={ptx.selectedPointCloudBox?.subAttribute?.[subAttribute.value]}\n placeholder={t('PleaseSelect')}\n onChange={(value) => setSubAttribute(subAttribute.value, value)}\n allowClear={true}\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 )}\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, null, null, { context: LabelBeeContext })(\n PointCloudToolSidebar,\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useState as
|
|
1
|
+
import e,{useState as n}from"react";import{Slider as p}from"antd";import u from"../../../../assets/attributeIcon/pen_a.svg.js";import g from"../../../../assets/attributeIcon/pen.svg.js";import S from"../../../../assets/attributeIcon/eraser_a.svg.js";import E from"../../../../assets/attributeIcon/eraser.svg.js";import{getClassName as r}from"../../../../utils/dom.js";import{EScribblePattern as t}from"../../../../data/enums/ToolType.js";import{useSelector as f}from"../../../../store/ctx.js";const v=m=>{const{onChange:b}=m,s=f(a=>a.annotation.toolInstance),[i,d]=n(20),[l,o]=n(t.Scribble),c=()=>{b(l,i)};return e.createElement("div",{className:r("scribble")},e.createElement("div",{className:r("scribble","select")},e.createElement("img",{src:l===t.Scribble?u:g,onClick:()=>{o(t.Scribble),s==null||s.setPattern(t.Scribble),c()}}),e.createElement("img",{src:l===t.Erase?S:E,onClick:()=>{o(t.Erase),s==null||s.setPattern(t.Erase),c()}})),e.createElement("div",{className:r("scribble","silder")},e.createElement("span",{className:r("scribble","circle")}),e.createElement(p,{onChange:a=>{d(a),c(),s==null||s.setPenSize(a)},min:1,max:50,style:{width:"60%"},value:i}),e.createElement("span",{className:r("scribble","circle"),style:{width:"10px",height:"10px"}})))};export{v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ScribbleSidebar/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Slider } from 'antd';\nimport penActivate from '@/assets/attributeIcon/pen_a.svg';\nimport pen from '@/assets/attributeIcon/pen.svg';\nimport eraserActivate from '@/assets/attributeIcon/eraser_a.svg';\nimport eraser from '@/assets/attributeIcon/eraser.svg';\nimport { getClassName } from '@/utils/dom';\nimport { AppState } from '@/store';\nimport { EScribblePattern } from '@/data/enums/ToolType';\nimport { useSelector } from '@/store/ctx';\n\ninterface IProps {\n // toolInstance?: GraphToolInstance;\n // stepInfo?: IStepInfo;\n onChange: (tool: number, values: number) => void;\n}\n\nconst ScribbleSidebar: React.FC<IProps> = (props) => {\n const { onChange } = props;\n // 查看时候默认值\n const toolInstance = useSelector((state: AppState) => state.annotation.toolInstance);\n const [silderValue, setSilderValue] = useState(20);\n const [selectTool, setSelectTool] = useState(EScribblePattern.Scribble);\n\n const changeValue = () => {\n onChange(selectTool, silderValue);\n };\n\n return (\n <div className={getClassName('scribble')}>\n <div className={getClassName('scribble', 'select')}>\n <img\n src={selectTool === EScribblePattern.Scribble ? penActivate : pen}\n onClick={() => {\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ScribbleSidebar/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Slider } from 'antd';\nimport penActivate from '@/assets/attributeIcon/pen_a.svg';\nimport pen from '@/assets/attributeIcon/pen.svg';\nimport eraserActivate from '@/assets/attributeIcon/eraser_a.svg';\nimport eraser from '@/assets/attributeIcon/eraser.svg';\nimport { getClassName } from '@/utils/dom';\nimport { AppState } from '@/store';\nimport { EScribblePattern } from '@/data/enums/ToolType';\nimport { useSelector } from '@/store/ctx';\n\ninterface IProps {\n // toolInstance?: GraphToolInstance;\n // stepInfo?: IStepInfo;\n onChange: (tool: number, values: number) => void;\n}\n\nconst ScribbleSidebar: React.FC<IProps> = (props) => {\n const { onChange } = props;\n // 查看时候默认值\n const toolInstance = useSelector((state: AppState) => state.annotation.toolInstance);\n const [silderValue, setSilderValue] = useState(20);\n const [selectTool, setSelectTool] = useState(EScribblePattern.Scribble);\n\n const changeValue = () => {\n onChange(selectTool, silderValue);\n };\n\n return (\n <div className={getClassName('scribble')}>\n <div className={getClassName('scribble', 'select')}>\n <img\n src={selectTool === EScribblePattern.Scribble ? penActivate : pen}\n onClick={() => {\n setSelectTool(EScribblePattern.Scribble);\n toolInstance?.setPattern(EScribblePattern.Scribble);\n changeValue();\n }}\n />\n <img\n src={selectTool === EScribblePattern.Erase ? eraserActivate : eraser}\n onClick={() => {\n setSelectTool(EScribblePattern.Erase);\n toolInstance?.setPattern(EScribblePattern.Erase);\n\n changeValue();\n }}\n />\n </div>\n <div className={getClassName('scribble', 'silder')}>\n <span className={getClassName('scribble', 'circle')} />\n <Slider\n onChange={(v: number) => {\n setSilderValue(v);\n changeValue();\n toolInstance?.setPenSize(v);\n }}\n min={1}\n max={50}\n style={{ width: '60%' }}\n value={silderValue}\n />\n <span\n className={getClassName('scribble', 'circle')}\n style={{ width: '10px', height: '10px' }}\n />\n </div>\n </div>\n );\n};\n\nexport default ScribbleSidebar;\n"],"names":["penActivate","pen","eraserActivate","eraser"],"mappings":";;;;;;;;;;AAkBM,MAAA,eAAA,GAAoC,CAAC,KAAU,KAAA;AACnD,EAAA,MAAM,CAAE,QAAa,CAAA,GAAA,KAAA,CAAA;AAErB,EAAA,MAAM,YAAe,GAAA,WAAA,CAAY,CAAC,KAAA,KAAoB,MAAM,UAAW,CAAA,YAAA,CAAA,CAAA;AACvE,EAAM,MAAA,CAAC,WAAa,EAAA,cAAA,CAAA,GAAkB,QAAS,CAAA,EAAA,CAAA,CAAA;AAC/C,EAAA,MAAM,CAAC,UAAA,EAAY,aAAiB,CAAA,GAAA,QAAA,CAAS,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAE9D,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,QAAA,CAAS,UAAY,EAAA,WAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGvB,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,WAAW,YAAa,CAAA,UAAA,CAAA;AAAA,GAAA,sCAC1B,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACtC,KAAD,EAAA;AAAA,IACE,GAAK,EAAA,UAAA,KAAe,gBAAiB,CAAA,QAAA,GAAWA,GAAc,GAAAC,KAAA;AAAA,IAC9D,SAAS,MAAM;AACb,MAAA,aAAA,CAAc,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAC/B,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,WAAW,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAC1C,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,sCAGH,KAAD,EAAA;AAAA,IACE,GAAK,EAAA,UAAA,KAAe,gBAAiB,CAAA,KAAA,GAAQC,KAAiB,GAAAC,KAAA;AAAA,IAC9D,SAAS,MAAM;AACb,MAAA,aAAA,CAAc,gBAAiB,CAAA,KAAA,CAAA,CAAA;AAC/B,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,WAAW,gBAAiB,CAAA,KAAA,CAAA,CAAA;AAE1C,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,sCAIL,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACtC,MAAD,EAAA;AAAA,IAAM,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,CAAA,sCACzC,MAAD,EAAA;AAAA,IACE,QAAA,EAAU,CAAC,CAAc,KAAA;AACvB,MAAe,cAAA,CAAA,CAAA,CAAA,CAAA;AACf,MAAA,WAAA,EAAA,CAAA;AACA,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,UAAW,CAAA,CAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAE3B,GAAK,EAAA,CAAA;AAAA,IACL,GAAK,EAAA,EAAA;AAAA,IACL,KAAA,EAAO,CAAE,KAAO,EAAA,KAAA,CAAA;AAAA,IAChB,KAAO,EAAA,WAAA;AAAA,GAAA,CAAA,sCAER,MAAD,EAAA;AAAA,IACE,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,IACpC,KAAO,EAAA,CAAE,KAAO,EAAA,MAAA,EAAQ,MAAQ,EAAA,MAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{prefix as
|
|
1
|
+
import{prefix as y}from"../../../constant/index.js";import{EToolName as o}from"../../../data/enums/ToolType.js";import P from"../../../utils/StepUtils.js";import{Collapse as m}from"antd/es";import e from"react";import{useTranslation as h}from"react-i18next";import L from"./AnnotationText/index.js";import O from"./ClearIcon/index.js";import R,{PointCloudOperation as x}from"./GeneralOperation/index.js";import w from"./ImgAttributeInfo/index.js";import z from"./SwitchAttributeList/index.js";import s,{expandIconFuc as N}from"./TagSidebar/index.js";import g from"./TextToolSidebar/index.js";import I from"./PointCloudToolSidebar/index.js";import B from"./ToolStyle/index.js";import{cTool as G}from"@labelbee/lb-annotation";import K from"./ScribbleSidebar/index.js";import{ToolIcons as U}from"./ToolIcons.js";import{useSelector as V}from"../../../store/ctx.js";const{EVideoToolName:k,EPointCloudName:F}=G,{Panel:j}=m,t=`${y}-sidebar`,q=({sider:r})=>{const d=V(l=>P.getCurrentStepInfo(l.annotation.step,l.annotation.stepList)),n=d==null?void 0:d.tool,{t:u}=h();if(!n)return null;const v=l=>{const S=e.createElement(B,null);return e.createElement(j,{header:u("Style"),className:"panel",key:l},S)},p=e.createElement(U,{toolName:n,onChange:()=>{}}),i=e.createElement(z,null),f=e.createElement(L,null),E=e.createElement(m,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:N},v("1")),b=e.createElement(m,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:N},e.createElement(j,{header:e.createElement("div",null,u("Adjust"),e.createElement(O,null)),className:"panel",key:"imgAttribute"},e.createElement(w,null))),a=e.createElement(R,null),$=e.createElement(s,null),C=e.createElement(g,null),T=e.createElement(K,{onChange:(l,S)=>{}}),c=e.createElement("div",{className:`${t}__horizontal`}),_=e.createElement(I,null),A=e.createElement(x,null);return r?typeof r=="function"?e.createElement("div",{className:`${t}`},r({toolIcon:p,attributeList:i,annotationText:f,toolStyle:E,imageAttributeInfo:b,operation:a,tagToolSideBar:$,textToolSideBar:C,horizontal:c,pointCloudToolSidebar:_,pointCloudOperation:A,scribbleSidebar:T})):r:[o.Rect,o.Point,o.Line,o.Rect,o.Polygon].includes(n)?e.createElement("div",{className:`${t}`},p,c,i,f,c,e.createElement("div",{className:`${t}__content`},E,b),a):n===o.Tag?e.createElement("div",{className:`${t}`},e.createElement(s,null)):n===k.VideoTagTool?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(s,null)),a):n===o.Text?e.createElement("div",{className:`${t}`},e.createElement(g,null)):n===F.PointCloud?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(I,null)),e.createElement(x,null)):n===o.ScribbleTool?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},T,i),a):null};export{q as default,t as sidebarCls};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/views/MainView/sidebar/index.tsx"],"sourcesContent":["import { prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { AppState } from '@/store';\nimport { Sider } from '@/types/main';\nimport StepUtils from '@/utils/StepUtils';\nimport { Collapse } from 'antd/es';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AnnotationText from './AnnotationText';\nimport ClearIcon from './ClearIcon';\nimport GeneralOperation, { PointCloudOperation } from './GeneralOperation';\nimport ImgAttributeInfo from './ImgAttributeInfo';\nimport SwitchAttributeList from './SwitchAttributeList';\nimport TagSidebar, { expandIconFuc } from './TagSidebar';\nimport TextToolSidebar from './TextToolSidebar';\nimport PointCloudToolSidebar from './PointCloudToolSidebar';\nimport ToolStyle from './ToolStyle';\nimport { cTool } from '@labelbee/lb-annotation';\nimport ScribbleSidebar from './ScribbleSidebar';\nimport { ToolIcons } from './ToolIcons';\nimport { useSelector } from '@/store/ctx';\n\nconst { EVideoToolName, EPointCloudName } = cTool;\n\nconst { Panel } = Collapse;\n\ninterface IProps {\n toolName?: EToolName;\n sider?: Sider;\n}\n\nexport const sidebarCls = `${prefix}-sidebar`;\nconst Sidebar: React.FC<IProps> = ({ sider }) => {\n const stepInfo = useSelector((state: AppState) =>\n StepUtils.getCurrentStepInfo(state.annotation.step, state.annotation.stepList),\n );\n const toolName = stepInfo?.tool;\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n /**\n * 样式面板, 包含透明度、线框、颜色\n * @param key 虚拟dom的key\n */\n const renderStylePanel = (key: string) => {\n const ToolStyleComponent = <ToolStyle />;\n return (\n <Panel header={t('Style')} className='panel' key={key}>\n {ToolStyleComponent}\n </Panel>\n );\n };\n\n // onChange is empty by default.\n const toolIcon = <ToolIcons toolName={toolName} onChange={() => {}} />;\n const attributeList = <SwitchAttributeList />;\n\n const annotationText = <AnnotationText />;\n\n const toolStyle = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n {renderStylePanel('1')}\n </Collapse>\n );\n\n const imageAttributeInfo = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n <Panel\n header={\n <div>\n {t('Adjust')}\n\n <ClearIcon />\n </div>\n }\n className='panel'\n key='imgAttribute'\n >\n <ImgAttributeInfo />\n </Panel>\n </Collapse>\n );\n\n const operation = <GeneralOperation />;\n\n const tagToolSideBar = <TagSidebar />;\n\n const textToolSideBar = <TextToolSidebar />;\n\n const scribbleSidebar = (\n <ScribbleSidebar\n onChange={(t, i) => {\n // 接收\n }}\n />\n );\n\n const horizontal = <div className={`${sidebarCls}__horizontal`} />;\n\n const pointCloudToolSidebar = <PointCloudToolSidebar />;\n\n const pointCloudOperation = <PointCloudOperation />;\n\n if (sider) {\n if (typeof sider === 'function') {\n return (\n <div className={`${sidebarCls}`}>\n {sider({\n toolIcon,\n attributeList,\n annotationText,\n toolStyle,\n imageAttributeInfo,\n operation,\n tagToolSideBar,\n textToolSideBar,\n horizontal,\n\n pointCloudToolSidebar,\n pointCloudOperation,\n scribbleSidebar,\n })}\n </div>\n );\n } else {\n return sider;\n }\n }\n\n if (\n (\n [\n EToolName.Rect,\n EToolName.Point,\n EToolName.Line,\n EToolName.Rect,\n EToolName.Polygon,\n ] as string[]\n ).includes(toolName)\n ) {\n return (\n <div className={`${sidebarCls}`}>\n {toolIcon}\n {horizontal}\n {attributeList}\n {annotationText}\n {horizontal}\n <div className={`${sidebarCls}__content`}>\n {toolStyle}\n {imageAttributeInfo}\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Tag) {\n return (\n <div className={`${sidebarCls}`}>\n <TagSidebar />\n </div>\n );\n }\n\n if (toolName === EVideoToolName.VideoTagTool) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <TagSidebar />\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Text) {\n return (\n <div className={`${sidebarCls}`}>\n <TextToolSidebar />\n </div>\n );\n }\n\n if (toolName === EPointCloudName.PointCloud) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <PointCloudToolSidebar />\n </div>\n <PointCloudOperation />\n </div>\n );\n }\n\n if (toolName === EToolName.ScribbleTool) {\n return (\n <div className={`${sidebarCls}`}>\n {scribbleSidebar}\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/views/MainView/sidebar/index.tsx"],"sourcesContent":["import { prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { AppState } from '@/store';\nimport { Sider } from '@/types/main';\nimport StepUtils from '@/utils/StepUtils';\nimport { Collapse } from 'antd/es';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AnnotationText from './AnnotationText';\nimport ClearIcon from './ClearIcon';\nimport GeneralOperation, { PointCloudOperation } from './GeneralOperation';\nimport ImgAttributeInfo from './ImgAttributeInfo';\nimport SwitchAttributeList from './SwitchAttributeList';\nimport TagSidebar, { expandIconFuc } from './TagSidebar';\nimport TextToolSidebar from './TextToolSidebar';\nimport PointCloudToolSidebar from './PointCloudToolSidebar';\nimport ToolStyle from './ToolStyle';\nimport { cTool } from '@labelbee/lb-annotation';\nimport ScribbleSidebar from './ScribbleSidebar';\nimport { ToolIcons } from './ToolIcons';\nimport { useSelector } from '@/store/ctx';\n\nconst { EVideoToolName, EPointCloudName } = cTool;\n\nconst { Panel } = Collapse;\n\ninterface IProps {\n toolName?: EToolName;\n sider?: Sider;\n}\n\nexport const sidebarCls = `${prefix}-sidebar`;\nconst Sidebar: React.FC<IProps> = ({ sider }) => {\n const stepInfo = useSelector((state: AppState) =>\n StepUtils.getCurrentStepInfo(state.annotation.step, state.annotation.stepList),\n );\n const toolName = stepInfo?.tool;\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n /**\n * 样式面板, 包含透明度、线框、颜色\n * @param key 虚拟dom的key\n */\n const renderStylePanel = (key: string) => {\n const ToolStyleComponent = <ToolStyle />;\n return (\n <Panel header={t('Style')} className='panel' key={key}>\n {ToolStyleComponent}\n </Panel>\n );\n };\n\n // onChange is empty by default.\n const toolIcon = <ToolIcons toolName={toolName} onChange={() => {}} />;\n const attributeList = <SwitchAttributeList />;\n\n const annotationText = <AnnotationText />;\n\n const toolStyle = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n {renderStylePanel('1')}\n </Collapse>\n );\n\n const imageAttributeInfo = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n <Panel\n header={\n <div>\n {t('Adjust')}\n\n <ClearIcon />\n </div>\n }\n className='panel'\n key='imgAttribute'\n >\n <ImgAttributeInfo />\n </Panel>\n </Collapse>\n );\n\n const operation = <GeneralOperation />;\n\n const tagToolSideBar = <TagSidebar />;\n\n const textToolSideBar = <TextToolSidebar />;\n\n const scribbleSidebar = (\n <ScribbleSidebar\n onChange={(t, i) => {\n // 接收\n }}\n />\n );\n\n const horizontal = <div className={`${sidebarCls}__horizontal`} />;\n\n const pointCloudToolSidebar = <PointCloudToolSidebar />;\n\n const pointCloudOperation = <PointCloudOperation />;\n\n if (sider) {\n if (typeof sider === 'function') {\n return (\n <div className={`${sidebarCls}`}>\n {sider({\n toolIcon,\n attributeList,\n annotationText,\n toolStyle,\n imageAttributeInfo,\n operation,\n tagToolSideBar,\n textToolSideBar,\n horizontal,\n\n pointCloudToolSidebar,\n pointCloudOperation,\n scribbleSidebar,\n })}\n </div>\n );\n } else {\n return sider;\n }\n }\n\n if (\n (\n [\n EToolName.Rect,\n EToolName.Point,\n EToolName.Line,\n EToolName.Rect,\n EToolName.Polygon,\n ] as string[]\n ).includes(toolName)\n ) {\n return (\n <div className={`${sidebarCls}`}>\n {toolIcon}\n {horizontal}\n {attributeList}\n {annotationText}\n {horizontal}\n <div className={`${sidebarCls}__content`}>\n {toolStyle}\n {imageAttributeInfo}\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Tag) {\n return (\n <div className={`${sidebarCls}`}>\n <TagSidebar />\n </div>\n );\n }\n\n if (toolName === EVideoToolName.VideoTagTool) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <TagSidebar />\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Text) {\n return (\n <div className={`${sidebarCls}`}>\n <TextToolSidebar />\n </div>\n );\n }\n\n if (toolName === EPointCloudName.PointCloud) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <PointCloudToolSidebar />\n </div>\n <PointCloudOperation />\n </div>\n );\n }\n\n if (toolName === EToolName.ScribbleTool) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n {scribbleSidebar}\n {attributeList}\n </div>\n {operation}\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 v}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 r}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 K from"./scribble/index.js";import{footerCls as P}from"../../index.js";import{useTranslation as V}from"react-i18next";import{cTool as W}from"@labelbee/lb-annotation";const{EVideoToolName:$,EPointCloudName:A}=W,g={[r.Rect]:I,[r.Tag]:N,[r.Point]:R,[r.Polygon]:w,[r.Line]:H,[r.Text]:_,[$.VideoTagTool]:M,[A.PointCloud]:L,[r.ScribbleTool]:K},B=({icon:l})=>typeof l=="string"?e.createElement("img",{width:16,height:16,src:l}):l||null,F=({style:l,title:u,toolName:c})=>{var y;const[h,m]=S(!1),{t:p}=V();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(B,{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,b="+")=>{if(!t)return null;const x=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"}},b)):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"}},x)},E=e.createElement("div",{className:`${P}__hotkey-content`},(y=g[c])==null?void 0:y.map((t,s)=>f(t,s))),C=l||{width:100};return g[c]?e.createElement(v,{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{F 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';\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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"}
|
|
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';\nimport scribbleShortCutTable from './scribble';\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 [EToolName.ScribbleTool]: scribbleShortCutTable,\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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{backward as
|
|
1
|
+
import{backward as a,forward as s,scale as i,fullScreen as r}from"../common/index.js";import n from"../../../../../../assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js";import l from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js";import t from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js";import c from"../../../../../../assets/annotation/pointCloudTool/changePointCloudValid.svg.js";import e from"../../../../../../assets/annotation/pointCloudTool/copy.svg.js";import m from"../../../../../../assets/annotation/pointCloudTool/nextBox.svg.js";import u 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 f,RotateLeftOutlined as v,RotateRightOutlined as x}from"@ant-design/icons";const j={name:"PointThickness",icon:o.createElement("span",{style:{display:" inline-block",width:14,height:14,borderRadius:"50%",border:"1px solid"}}),shortCut:["+","-"],linkSymbol:""},R={name:"RotateAroundCenterPoint",icon:o.createElement(f,null),shortCut:[l],noticeInfo:"DragOperation"},T={name:"PointCloudViewTranslate",icon:n,shortCut:[t],noticeInfo:"Drag"},P={name:"TopViewTranslate",icon:n,shortCut:[t],noticeInfo:"Drag"},B={name:"ChangePointCloudValid",icon:c,shortCut:["V"]},S={name:"CopyBox",icon:e,shortCut:["Ctrl","C"]},y={name:"PasteBox",icon:u,shortCut:["Ctrl","V"]},b={name:"RotateLeft",icon:o.createElement(v,null),shortCut:["Q"]},I={name:"RotateRight",icon:o.createElement(x,null),shortCut:["E"]},_={name:"PreviousBox",icon:C,shortCut:["Shift","Tab"]},$={name:"NextBox",icon:m,shortCut:["Tab"]},k={name:"Rotate180",icon:g,shortCut:["G"],noticeInfo:"SelectedStatus"},V={name:"CopyPrevPage",icon:e,shortCut:["Alt","C"]},w={name:"ChangeBoxValid",icon:h,shortCut:["F"],noticeInfo:"SelectedStatus"},A={name:"MultiSelect",icon:d,shortCut:["Ctrl",t]},D={name:"SelectAllBox",icon:p,shortCut:["Ctrl","A"]},E=[{name:"GeneralOperation"},a,s,j,i,R,T,P,B,{name:"RectPattern"},S,y,b,I,_,$,k,V,w,A,D,r];export{E as default};
|
|
@@ -1 +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
|
|
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 paste 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: 'PointThickness',\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: 'RotateAroundCenterPoint',\n icon: <ReloadOutlined />,\n shortCut: [leftClick],\n noticeInfo: 'DragOperation',\n};\n\nconst Drag3D = {\n name: 'PointCloudViewTranslate',\n icon: dragIcon,\n shortCut: [rightClick],\n noticeInfo: 'Drag',\n};\n\nconst DragTopView = {\n name: 'TopViewTranslate',\n icon: dragIcon,\n shortCut: [rightClick],\n noticeInfo: 'Drag',\n};\n\nconst ChangeInvalid = {\n name: 'ChangePointCloudValid',\n icon: changePointCloudValid,\n shortCut: ['V'],\n};\n\nconst CopyBox = {\n name: 'CopyBox',\n icon: copy,\n shortCut: ['Ctrl', 'C'],\n};\n\nconst PasteBox = {\n name: 'PasteBox',\n icon: paste,\n shortCut: ['Ctrl', 'V'],\n};\n\nconst LeftRotate = {\n name: 'RotateLeft',\n icon: <RotateLeftOutlined />,\n shortCut: ['Q'],\n};\n\nconst RightRotate = {\n name: 'RotateRight',\n icon: <RotateRightOutlined />,\n shortCut: ['E'],\n};\n\nconst PrevBox = {\n name: 'PreviousBox',\n icon: prevBox,\n shortCut: ['Shift', 'Tab'],\n};\n\nconst NextBox = {\n name: 'NextBox',\n icon: nextBox,\n shortCut: ['Tab'],\n};\n\nconst Rotate180 = {\n name: 'Rotate180',\n icon: rotate180_black,\n shortCut: ['G'],\n noticeInfo: 'SelectedStatus',\n};\n\nconst CopyPrevPage = {\n name: 'CopyPrevPage',\n icon: copy,\n shortCut: ['Alt', 'C'],\n};\n\nconst ChangeBoxInvalid = {\n name: 'ChangeBoxValid',\n icon: TabChangeSelectedSvg,\n shortCut: ['F'],\n noticeInfo: 'SelectedStatus',\n};\n\nconst SelectMulti = {\n name: 'MultiSelect',\n icon: selectMultiple,\n shortCut: ['Ctrl', rightClick],\n};\n\nconst SelectAll = {\n name: 'SelectAllBox',\n icon: selectAll,\n shortCut: ['Ctrl', 'A'],\n};\n\nconst pointCloudShortCutTable: IShortcut[] = [\n { name: 'GeneralOperation' },\n backward,\n forward,\n changePointSize,\n scale,\n rotateRoundCenter,\n Drag3D,\n DragTopView,\n ChangeInvalid,\n { name: 'RectPattern' },\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","paste","prevBox","nextBox","rotate180_black","TabChangeSelectedSvg","selectMultiple","selectAll"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{scale as e,saveResult as r,restore as t,revoke as a,rotate as o,backward as s,forward as i,dargWithRightClick as l,setValid as c}from"../common/index.js";const d=[e,r,t,a,o,s,i,l,c];export{d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.tsx"],"sourcesContent":["import {\n backward,\n dargWithRightClick,\n forward,\n // fullScreen,\n restore,\n revoke,\n rotate,\n setValid,\n scale,\n // attributeClickLock,\n // attributeLock,\n // copyBackwardResult,\n // hidden,\n // changeSpecialLine,\n saveResult,\n // dargWithLeftClick,\n} from '../common';\n\nconst scribbleShortCutTable = [\n scale,\n saveResult,\n restore,\n revoke,\n rotate,\n backward,\n forward,\n dargWithRightClick,\n setValid,\n // copyBackwardResult,\n];\n\nexport default scribbleShortCutTable;\n"],"names":[],"mappings":";;AAmBA,MAAM,qBAAwB,GAAA;AAAA,EAC5B,KAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{prefix as
|
|
1
|
+
import{prefix as L}from"../../../constant/index.js";import{PageBackward as f,PageForward as x,PageJump as P}from"../../../store/annotation/actionCreators.js";import{getTotalPage as N}from"../../../store/annotation/reducer.js";import{Divider as k}from"antd/es";import t from"react";import{useTranslation as B}from"react-i18next";import{connect as S}from"react-redux";import{LabelBeeContext as w,useDispatch as D}from"../../../store/ctx.js";import b from"./FooterTips/index.js";import R from"./HiddenTips/index.js";import $ from"./PageNumber/index.js";import H from"./ZoomController/index.js";import{Pagination as J}from"./Pagination.js";import{cTool as Z}from"@labelbee/lb-annotation";const{EPointCloudName:z}=Z,l=`${L}-footer`,E=()=>t.createElement(k,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),T=({footerTips:e,hiddenTips:r,pageNumber:s,pagination:m,zoomController:a,curItems:c,footerDivider:u})=>t.createElement(t.Fragment,null,e,t.createElement("div",{style:{flex:1}}),r,s,m,c,u,a),_=e=>{var r;const{stepList:s,step:m,basicResultList:a,basicIndex:c,mode:u="light",footer:i=T,skipBeforePageTurning:o}=e,n=D(),{t:I}=B(),d=(r=s[m-1])!=null?r:{},v=!!d.dataSourceStep,h=()=>{if(o){o(()=>n(f()));return}n(f())},j=()=>{if(o){o(()=>n(x()));return}n(x())},y=C=>{const g=~~C-1;if(o){o(()=>n(P(g)));return}n(P(g))},p=t.createElement(J,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:y,pageBackward:h,pageForward:j,footerCls:l}),F=v&&a.length>0?t.createElement("span",null,I("curItems",{current:c+1,total:a.length})):null;return typeof i=="function"?i===T&&d.tool===z.PointCloud?t.createElement("div",{className:`${l}`,style:e.style},t.createElement(b,null),t.createElement("div",{style:{flex:1}}),p):t.createElement("div",{className:`${l}`,style:e.style},i({footerTips:t.createElement(b,null),hiddenTips:t.createElement(R,null),pageNumber:t.createElement($,null),pagination:p,zoomController:t.createElement(H,{mode:u}),curItems:F,footerDivider:t.createElement(E,null)})):i},q=e=>({totalPage:N(e.annotation),imgIndex:e.annotation.imgIndex,stepList:e.annotation.stepList,step:e.annotation.step,basicIndex:e.annotation.basicIndex,basicResultList:e.annotation.basicResultList,skipBeforePageTurning:e.annotation.skipBeforePageTurning});var A=S(q,null,null,{context:w})(_);export{E as FooterDivider,A as default,l as footerCls};
|