@labelbee/lb-components 1.6.0 → 1.7.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/components/attributeList/index.js +1 -1
  3. package/dist/components/pointCloudView/PointCloud2DView.js +1 -1
  4. package/dist/components/pointCloudView/PointCloud3DView.js +1 -1
  5. package/dist/components/pointCloudView/PointCloudBackView.js +1 -1
  6. package/dist/components/pointCloudView/PointCloudContext.js +1 -1
  7. package/dist/components/pointCloudView/PointCloudInfos.js +1 -1
  8. package/dist/components/pointCloudView/PointCloudListener.js +1 -1
  9. package/dist/components/pointCloudView/PointCloudSideView.js +1 -1
  10. package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
  11. package/dist/components/pointCloudView/hooks/useAttribute.js +1 -0
  12. package/dist/components/pointCloudView/hooks/useHistory.js +1 -0
  13. package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  14. package/dist/components/pointCloudView/hooks/usePolygon.js +1 -1
  15. package/dist/components/pointCloudView/hooks/useSingleBox.js +1 -1
  16. package/dist/components/pointCloudView/hooks/useStatus.js +1 -1
  17. package/dist/components/videoPlayer/components/controller/index.js +1 -1
  18. package/dist/constant/index.js +1 -1
  19. package/dist/constant/styleString.js +1 -1
  20. package/dist/hooks/annotation.js +1 -1
  21. package/dist/store/Actions.js +1 -1
  22. package/dist/store/annotation/actionCreators.js +1 -1
  23. package/dist/store/annotation/map.js +1 -1
  24. package/dist/store/annotation/reducer.js +1 -1
  25. package/dist/types/components/attributeList/index.d.ts +3 -2
  26. package/dist/types/components/pointCloudView/PointCloud2DView.d.ts +2 -5
  27. package/dist/types/components/pointCloudView/PointCloud3DView.d.ts +3 -3
  28. package/dist/types/components/pointCloudView/PointCloudBackView.d.ts +2 -2
  29. package/dist/types/components/pointCloudView/PointCloudContext.d.ts +2 -1
  30. package/dist/types/components/pointCloudView/PointCloudListener.d.ts +3 -3
  31. package/dist/types/components/pointCloudView/PointCloudSideView.d.ts +3 -3
  32. package/dist/types/components/pointCloudView/PointCloudTopView.d.ts +3 -3
  33. package/dist/types/components/pointCloudView/hooks/useAttribute.d.ts +7 -0
  34. package/dist/types/components/pointCloudView/hooks/useHistory.d.ts +18 -0
  35. package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +7 -3
  36. package/dist/types/components/pointCloudView/hooks/usePolygon.d.ts +1 -0
  37. package/dist/types/constant/index.d.ts +3 -1
  38. package/dist/types/constant/styleString.d.ts +1 -1
  39. package/dist/types/hooks/annotation.d.ts +4 -2
  40. package/dist/types/store/Actions.d.ts +1 -0
  41. package/dist/types/store/annotation/actionCreators.d.ts +3 -2
  42. package/dist/types/store/annotation/map.d.ts +12 -0
  43. package/dist/types/store/annotation/types.d.ts +9 -1
  44. package/dist/types/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.d.ts +13 -0
  45. package/dist/types/views/MainView/sidebar/PointCloudToolSidebar/index.d.ts +4 -1
  46. package/dist/types/views/MainView/toolFooter/FooterTips/ToolHotKey/index.d.ts +16 -1
  47. package/dist/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js +1 -0
  48. package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  49. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  50. package/dist/views/MainView/toolFooter/FooterTips/index.js +1 -1
  51. package/dist/views/MainView/toolFooter/index.js +1 -1
  52. package/dist/views/MainView/toolHeader/headerOption/index.js +1 -1
  53. package/es/App.js +1 -1
  54. package/es/App.js.map +1 -1
  55. package/es/components/attributeList/index.js +1 -1
  56. package/es/components/attributeList/index.js.map +1 -1
  57. package/es/components/pointCloudView/PointCloud2DView.js +1 -1
  58. package/es/components/pointCloudView/PointCloud2DView.js.map +1 -1
  59. package/es/components/pointCloudView/PointCloud3DView.js +1 -1
  60. package/es/components/pointCloudView/PointCloud3DView.js.map +1 -1
  61. package/es/components/pointCloudView/PointCloudBackView.js +1 -1
  62. package/es/components/pointCloudView/PointCloudBackView.js.map +1 -1
  63. package/es/components/pointCloudView/PointCloudContext.js +1 -1
  64. package/es/components/pointCloudView/PointCloudContext.js.map +1 -1
  65. package/es/components/pointCloudView/PointCloudInfos.js +1 -1
  66. package/es/components/pointCloudView/PointCloudInfos.js.map +1 -1
  67. package/es/components/pointCloudView/PointCloudListener.js +1 -1
  68. package/es/components/pointCloudView/PointCloudListener.js.map +1 -1
  69. package/es/components/pointCloudView/PointCloudSideView.js +1 -1
  70. package/es/components/pointCloudView/PointCloudSideView.js.map +1 -1
  71. package/es/components/pointCloudView/PointCloudTopView.js +1 -1
  72. package/es/components/pointCloudView/PointCloudTopView.js.map +1 -1
  73. package/es/components/pointCloudView/hooks/useAttribute.js +1 -0
  74. package/es/components/pointCloudView/hooks/useAttribute.js.map +1 -0
  75. package/es/components/pointCloudView/hooks/useHistory.js +1 -0
  76. package/es/components/pointCloudView/hooks/useHistory.js.map +1 -0
  77. package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  78. package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -1
  79. package/es/components/pointCloudView/hooks/usePolygon.js +1 -1
  80. package/es/components/pointCloudView/hooks/usePolygon.js.map +1 -1
  81. package/es/components/pointCloudView/hooks/useSingleBox.js +1 -1
  82. package/es/components/pointCloudView/hooks/useSingleBox.js.map +1 -1
  83. package/es/components/pointCloudView/hooks/useStatus.js +1 -1
  84. package/es/components/pointCloudView/hooks/useStatus.js.map +1 -1
  85. package/es/constant/index.js +1 -1
  86. package/es/constant/index.js.map +1 -1
  87. package/es/constant/styleString.js +1 -1
  88. package/es/constant/styleString.js.map +1 -1
  89. package/es/hooks/annotation.js +1 -1
  90. package/es/hooks/annotation.js.map +1 -1
  91. package/es/store/Actions.js +1 -1
  92. package/es/store/Actions.js.map +1 -1
  93. package/es/store/annotation/actionCreators.js +1 -1
  94. package/es/store/annotation/actionCreators.js.map +1 -1
  95. package/es/store/annotation/map.js +1 -1
  96. package/es/store/annotation/map.js.map +1 -1
  97. package/es/store/annotation/reducer.js +1 -1
  98. package/es/store/annotation/reducer.js.map +1 -1
  99. package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js +1 -0
  100. package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js.map +1 -0
  101. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  102. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -1
  103. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  104. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -1
  105. package/es/views/MainView/toolFooter/FooterTips/index.js +1 -1
  106. package/es/views/MainView/toolFooter/FooterTips/index.js.map +1 -1
  107. package/es/views/MainView/toolFooter/index.js +1 -1
  108. package/es/views/MainView/toolFooter/index.js.map +1 -1
  109. package/es/views/MainView/toolHeader/headerOption/index.js +1 -1
  110. package/es/views/MainView/toolHeader/headerOption/index.js.map +1 -1
  111. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sources":["../../../src/store/annotation/reducer.ts"],"sourcesContent":["import { getFormatSize } from '@/components/customResizeHook';\nimport styleString from '@/constant/styleString';\nimport { ANNOTATION_ACTIONS } from '@/store/Actions';\nimport { jsonParser } from '@/utils';\nimport AnnotationDataUtils from '@/utils/AnnotationDataUtils';\nimport { ConfigUtils } from '@/utils/ConfigUtils';\nimport { composeResult, composeResultWithBasicImgInfo } from '@/utils/data';\nimport StepUtils from '@/utils/StepUtils';\nimport ToolUtils from '@/utils/ToolUtils';\nimport { AnnotationEngine, CommonToolUtils, ImgUtils } from '@labelbee/lb-annotation';\nimport { i18n } from '@labelbee/lb-utils';\nimport { Modal } from 'antd';\nimport { message } from 'antd/es';\nimport _ from 'lodash';\nimport { SetAnnotationLoading } from './actionCreators';\nimport { AnnotationActionTypes, AnnotationState } from './types';\n\nexport const getStepConfig = (stepList: any[], step: number) =>\n stepList.find((i) => i.step === step);\n\nconst initialState: AnnotationState = {\n annotationEngine: null,\n toolInstance: null,\n imgList: [],\n config: '{}',\n imgIndex: -1,\n basicIndex: 0,\n imgPageSize: 1,\n step: 1,\n stepList: [],\n imgNode: new Image(),\n basicResultList: [],\n resultList: [],\n stepProgress: 0,\n loading: false,\n triggerEventAfterIndexChanged: false,\n\n pointCloudLoading: false,\n};\n\n/**\n * 获取当前文件列表的总页数\n * @param state\n */\nexport const getTotalPage = (state: AnnotationState) => {\n const { imgList, imgPageSize } = state;\n return Math.ceil(imgList.length / imgPageSize);\n};\n\nconst calcStepProgress = (fileList: any[], step: number) =>\n fileList.reduce((pre, i) => {\n if (i) {\n const resultStr = i.result;\n const resultObject = jsonParser(resultStr);\n if (resultObject[`step_${step}`]) {\n return pre + 1;\n }\n }\n return pre;\n }, 0) / fileList.length;\n\nconst updateToolInstance = (annotation: AnnotationState, imgNode: HTMLImageElement) => {\n const { step, stepList } = annotation;\n const stepConfig = StepUtils.getCurrentStepInfo(step, stepList);\n const config = ConfigUtils.jsonParser(stepConfig.config);\n\n // 视频工具不支持实例化\n if (ToolUtils.isVideoTool(stepConfig?.tool)) {\n return;\n }\n\n // TODO: 点云实例化对接\n if (ToolUtils.isPointCloudTool(stepConfig?.tool)) {\n return;\n }\n\n const container = document.getElementById('toolContainer');\n\n if (!container) {\n throw `Not exist dom named id-toolContainer`;\n }\n\n const canvasSize = getFormatSize({ width: window.innerWidth, height: window.innerHeight });\n const annotationEngine = new AnnotationEngine({\n container,\n toolName: stepConfig.tool,\n size: canvasSize,\n imgNode,\n config,\n style: JSON.parse(styleString),\n });\n\n return { toolInstance: annotationEngine?.toolInstance, annotationEngine };\n};\n\n/**\n * 初始化imgNode并加载数据\n * @param nextIndex\n * @param nextBasicIndex\n */\nexport const LoadFileAndFileData =\n (nextIndex: number, nextBasicIndex?: number): any =>\n async (dispatch: any, getState: any) => {\n const { stepList, step } = getState().annotation;\n const currentIsVideo = StepUtils.currentToolIsVideo(step, stepList);\n const currentIsPointCloud = StepUtils.currentToolIsPointCloud(step, stepList);\n\n SetAnnotationLoading(dispatch, true);\n\n await dispatch(TryGetFileDataByAPI(nextIndex));\n\n if (currentIsVideo || currentIsPointCloud) {\n dispatch(AfterVideoLoaded(nextIndex));\n return;\n }\n\n dispatch(AfterImageLoaded(nextIndex, nextBasicIndex));\n };\n\n/**\n * 支持并优先外部传入的获取文件接口\n * @param nextIndex\n */\nconst TryGetFileDataByAPI = (nextIndex: number) => async (dispatch: any, getState: any) => {\n const { getFileData, imgList } = getState().annotation;\n if (getFileData) {\n const fileData = await getFileData(imgList[nextIndex], nextIndex);\n dispatch({\n type: ANNOTATION_ACTIONS.SET_FILE_DATA,\n payload: {\n fileData,\n index: nextIndex,\n },\n });\n }\n};\n\nconst AfterVideoLoaded = (nextIndex: number) => (dispatch: any) => {\n SetAnnotationLoading(dispatch, false);\n\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n nextIndex,\n },\n });\n};\n\nconst AfterImageLoaded =\n (nextIndex: number, nextBasicIndex?: number) => (dispatch: any, getState: any) => {\n const { toolInstance, imgList } = getState().annotation;\n const url = imgList?.[nextIndex]?.url;\n ImgUtils.load(url)\n .then((imgNode: HTMLImageElement) => {\n SetAnnotationLoading(dispatch, false);\n\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n imgNode,\n nextIndex,\n nextBasicIndex,\n },\n });\n })\n .catch(() => {\n SetAnnotationLoading(dispatch, false);\n toolInstance?.setErrorImg();\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n nextIndex,\n nextBasicIndex,\n },\n });\n });\n };\n\nexport const annotationReducer = (\n state = initialState,\n action: AnnotationActionTypes,\n): AnnotationState => {\n switch (action.type) {\n case ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE: {\n return {\n ...state,\n toolInstance: action.payload.toolInstance,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_IMG_LIST: {\n return {\n ...state,\n imgList: action.payload.imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.CALC_STEP_PROGRESS: {\n const { imgList, step } = state;\n\n const stepProgress = calcStepProgress(imgList, step);\n\n return {\n ...state,\n stepProgress,\n };\n }\n\n case ANNOTATION_ACTIONS.SUBMIT_FILE_DATA: {\n const { imgList, imgIndex, step, stepList, toolInstance, onSubmit, resultList } = state;\n if (!toolInstance || !imgList[imgIndex]) {\n return state;\n }\n\n const oldResultString = imgList[imgIndex]?.result || '';\n const [, basicImgInfo, extraData] = toolInstance?.exportData() ?? [];\n const customObject = toolInstance?.exportCustomData?.() ?? {};\n\n const resultWithBasicInfo = composeResultWithBasicImgInfo(oldResultString, basicImgInfo);\n const newResultString = composeResult(\n resultWithBasicInfo,\n { step, stepList },\n { rect: resultList },\n customObject,\n );\n\n imgList[imgIndex].result = AnnotationDataUtils.dataCorrection(\n newResultString,\n oldResultString,\n step,\n stepList,\n );\n\n if (extraData) {\n imgList[imgIndex] = {\n ...imgList[imgIndex],\n ...extraData,\n };\n }\n\n if (onSubmit) {\n onSubmit([imgList[imgIndex]], action.payload?.submitType, imgIndex);\n }\n\n const stepProgress = calcStepProgress(imgList, step);\n return {\n ...state,\n stepProgress,\n imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.SAVE_RESULT: {\n const { imgList, imgIndex, onSave } = state;\n onSave?.(imgList[imgIndex], imgIndex, imgList);\n return {\n ...state,\n };\n }\n\n /**\n * For data storage in dependent states\n *\n * Features:\n * 1. Get Data from ToolInstance (If it use toolInstance)\n * 2. Filter Data By BasicResultList\n */\n case ANNOTATION_ACTIONS.SUBMIT_RESULT: {\n const { imgList, basicIndex, resultList, toolInstance, basicResultList } = state;\n if (!toolInstance) {\n return state;\n }\n\n const [exportResult] = toolInstance?.exportData() ?? [];\n\n let previousResultList = exportResult;\n\n if (basicResultList?.length > 0) {\n const sourceID = basicResultList[basicIndex]?.id;\n const newResultData = exportResult.map((i: any) => ({ ...i, sourceID }));\n previousResultList = _.cloneDeep(resultList).filter((i: any) => i.sourceID !== sourceID);\n previousResultList.push(...newResultData);\n }\n\n return {\n ...state,\n resultList: previousResultList,\n imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_BASIC_INDEX: {\n const {\n toolInstance,\n step,\n imgList,\n imgIndex,\n stepList,\n annotationEngine,\n resultList,\n basicResultList,\n } = state;\n\n if (!toolInstance || !annotationEngine) {\n return state;\n }\n\n const nextBasicIndex = action.payload.basicIndex;\n const sourceID = basicResultList[nextBasicIndex]?.id;\n\n const fileResult = jsonParser(imgList[imgIndex]?.result);\n const result = (resultList || []).filter((i) => i.sourceID === sourceID);\n\n const stepConfig = getStepConfig(stepList, step);\n\n const { dataSourceStep, tool } = stepConfig;\n const dependStepConfig = getStepConfig(stepList, dataSourceStep);\n let stepBasicResultList = [];\n\n if (dataSourceStep && tool) {\n stepBasicResultList = fileResult[`step_${dataSourceStep}`]?.result;\n\n if (stepBasicResultList?.length > 0) {\n annotationEngine?.setBasicInfo(\n dependStepConfig.tool,\n stepBasicResultList[nextBasicIndex],\n );\n annotationEngine?.launchOperation();\n } else {\n annotationEngine?.setBasicInfo(dependStepConfig.tool);\n annotationEngine?.forbidOperation();\n message.info(i18n.t('NoDependency'));\n }\n }\n\n toolInstance?.setResult(result);\n toolInstance?.history.initRecord(result, true);\n\n return {\n ...state,\n basicIndex: nextBasicIndex,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED: {\n const { triggerEventAfterIndexChanged } = action.payload;\n return {\n ...state,\n triggerEventAfterIndexChanged: !!triggerEventAfterIndexChanged,\n };\n }\n\n case ANNOTATION_ACTIONS.LOAD_FILE_DATA: {\n const { imgList, step, toolInstance, annotationEngine, stepList } = state;\n\n /**\n * TODO\n * Before: !toolInstance || !annotationEngine\n *\n * The roles of toolInstance and annotationEngine need to be clearly distinguished\n */\n if (!toolInstance) {\n return { ...state, imgIndex: action.payload.nextIndex };\n }\n\n const currentStepInfo = StepUtils.getCurrentStepInfo(step, stepList);\n\n const { nextIndex, imgNode, nextBasicIndex, imgError } = action.payload;\n const basicIndex = nextBasicIndex ?? 0;\n\n const fileResult = jsonParser(imgList[nextIndex]?.result);\n\n const stepResult = fileResult[`step_${currentStepInfo.step}`];\n\n const isInitData = !stepResult; // 是否为初始化数据\n\n const basicImgInfo = {\n rotate: fileResult.rotate ?? 0,\n valid: fileResult.valid ?? true,\n };\n\n if (imgNode && imgError !== true) {\n annotationEngine?.setImgNode(imgNode, basicImgInfo);\n } else {\n // Non-graphical tools to initialize base data\n\n toolInstance?.setValid(basicImgInfo.valid);\n }\n\n const stepConfig = getStepConfig(stepList, currentStepInfo.step);\n\n const { dataSourceStep, tool } = stepConfig;\n const dependStepConfig = getStepConfig(stepList, dataSourceStep);\n const hasDataSourceStep = dataSourceStep && tool;\n const stepBasicResultList = fileResult[`step_${dataSourceStep}`]?.result ?? [];\n\n const result = AnnotationDataUtils.getInitialResultList(\n stepResult?.result,\n toolInstance,\n stepConfig,\n stepBasicResultList,\n isInitData,\n );\n\n annotationEngine?.launchOperation();\n\n if (hasDataSourceStep) {\n if (stepBasicResultList?.length > 0) {\n annotationEngine?.setBasicInfo(dependStepConfig.tool, stepBasicResultList[basicIndex]);\n } else {\n // TODO: 禁用绘制交互,有无依赖之间的操作切换\n annotationEngine?.setBasicInfo(dependStepConfig.tool);\n annotationEngine?.forbidOperation();\n message.info(i18n.t('NoDependency'));\n }\n }\n\n // TODO,非查看模式才允许添加数据\n if (currentStepInfo.tool !== 'check') {\n const sourceID = stepBasicResultList[basicIndex]?.id ?? '';\n const resultForBasicIndex = hasDataSourceStep\n ? result.filter((i: { sourceID: string | number }) =>\n CommonToolUtils.isSameSourceID(i.sourceID, sourceID),\n )\n : result;\n toolInstance?.history.initRecord(result, true);\n toolInstance?.setResult(resultForBasicIndex);\n }\n\n return {\n ...state,\n imgIndex: nextIndex,\n basicIndex,\n basicResultList: stepBasicResultList,\n resultList: result,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG: {\n return {\n ...state,\n config: action.payload.config ?? '{}',\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TASK_STEP_LIST: {\n const { stepList } = action.payload;\n return {\n ...state,\n stepList,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TASK_CONFIG: {\n const { stepList, step } = action.payload;\n return {\n ...state,\n stepList,\n step,\n };\n }\n\n case ANNOTATION_ACTIONS.INIT_TOOL: {\n const { imgNode } = state;\n const instance = updateToolInstance(state, imgNode);\n\n if (instance) {\n const { toolInstance, annotationEngine } = instance;\n return {\n ...state,\n toolInstance,\n annotationEngine,\n };\n }\n\n return {\n ...state,\n };\n }\n\n // react hook tool Proprietary operations\n case ANNOTATION_ACTIONS.SET_TOOL: {\n const instance = action.payload?.instance;\n if (instance) {\n return {\n ...state,\n toolInstance: instance,\n // TODO It needs to optimize\n // annotationEngine: {\n // toolInstance: instance,\n // } as any,\n };\n }\n\n return {\n ...state,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT: {\n return {\n ...state,\n onSubmit: action.payload.onSubmit,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_SAVE: {\n return {\n ...state,\n onSave: action.payload.onSave,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE: {\n return {\n ...state,\n onPageChange: action.payload.onPageChange,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE: {\n return {\n ...state,\n onStepChange: action.payload.onStepChange,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA: {\n return {\n ...state,\n getFileData: action.payload.getFileData,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE: {\n return {\n ...state,\n pageSize: action.payload.pageSize,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST: {\n return {\n ...state,\n loadFileList: action.payload.loadFileList,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_BEFORE_ROTATE: {\n return {\n ...state,\n beforeRotate: action.payload.beforeRotate,\n };\n }\n\n case ANNOTATION_ACTIONS.SKIP_BEFORE_PAGE_TURNING: {\n return {\n ...state,\n skipBeforePageTurning: action.payload.skipBeforePageTurning,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_FILE_DATA: {\n const { fileData, index } = action.payload;\n const { imgList } = state;\n const newImgList = [...imgList];\n newImgList[index] = { ...newImgList[index], ...fileData };\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ROTATE: {\n const { toolInstance, beforeRotate } = state;\n\n // DataCheck before rotate.\n if (beforeRotate) {\n if (beforeRotate() === false) {\n return state;\n }\n }\n\n toolInstance?.updateRotate();\n return state;\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ANNOTATION_VALID: {\n const { toolInstance } = state;\n const valid = toolInstance?.valid ?? true;\n\n Modal.destroyAll();\n Modal.confirm({\n content: i18n.t(valid ? 'updateValidFromValidToInValid' : 'updateValidFromInValidToValid'),\n onOk: () => {\n toolInstance?.setValid(!valid);\n },\n okText: i18n.t(\"Confirm\"),\n cancelText: i18n.t(\"Cancel\")\n });\n\n return state;\n }\n\n case ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT: {\n const { toolInstance, imgIndex, imgList, step } = state;\n if (!toolInstance) {\n return state;\n }\n\n if (imgIndex === 0 || imgIndex >= imgList.length) {\n console.error('无法复制边界外的内容');\n return state;\n }\n const backwardResult = imgList[imgIndex - 1].result;\n if (!backwardResult) {\n return state;\n }\n\n const newResult = AnnotationDataUtils.copyResultChange(\n backwardResult,\n step,\n imgList[imgIndex].result ?? '',\n );\n imgList[imgIndex] = {\n ...imgList[imgIndex],\n result: newResult,\n };\n\n // 更新当前的结果\n const fileResult = jsonParser(newResult);\n const stepResult = fileResult[`step_${step}`];\n const result = stepResult?.result || [];\n\n toolInstance?.setResult(result);\n toolInstance?.history.pushHistory(result);\n\n return {\n ...state,\n imgList: [...imgList],\n };\n }\n\n case ANNOTATION_ACTIONS.SET_STEP: {\n const { stepList, annotationEngine } = state;\n const { toStep } = action.payload;\n\n if (!annotationEngine) {\n return state;\n }\n\n const stepConfig = getStepConfig(stepList, toStep);\n annotationEngine?.setToolName(stepConfig.tool, stepConfig.config);\n\n return {\n ...state,\n step: toStep,\n toolInstance: annotationEngine?.toolInstance,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_LOADING: {\n const { loading } = action.payload;\n\n return {\n ...state,\n loading: !!loading,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_POINT_CLOUD_LOADING: {\n const { pointCloudLoading } = action.payload;\n\n return {\n ...state,\n pointCloudLoading: !!pointCloudLoading,\n };\n }\n\n // eslint-disable-next-line no-fallthrough\n default:\n return state;\n }\n};\n"],"names":["this"],"mappings":"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"}
1
+ {"version":3,"file":"reducer.js","sources":["../../../src/store/annotation/reducer.ts"],"sourcesContent":["import { getFormatSize } from '@/components/customResizeHook';\nimport { ESubmitType } from '@/constant';\nimport styleString from '@/constant/styleString';\nimport { ANNOTATION_ACTIONS } from '@/store/Actions';\nimport { jsonParser } from '@/utils';\nimport AnnotationDataUtils from '@/utils/AnnotationDataUtils';\nimport { ConfigUtils } from '@/utils/ConfigUtils';\nimport { composeResult, composeResultWithBasicImgInfo } from '@/utils/data';\nimport StepUtils from '@/utils/StepUtils';\nimport ToolUtils from '@/utils/ToolUtils';\nimport { AnnotationEngine, CommonToolUtils, ImgUtils, MathUtils } from '@labelbee/lb-annotation';\nimport { i18n, PointCloudUtils } from '@labelbee/lb-utils';\nimport { Modal } from 'antd';\nimport { message } from 'antd/es';\nimport _ from 'lodash';\nimport { SetAnnotationLoading } from './actionCreators';\nimport { AnnotationActionTypes, AnnotationState } from './types';\n\nexport const getStepConfig = (stepList: any[], step: number) =>\n stepList.find((i) => i.step === step);\n\nconst initialState: AnnotationState = {\n annotationEngine: null,\n toolInstance: null,\n imgList: [],\n config: '{}',\n imgIndex: -1,\n basicIndex: 0,\n imgPageSize: 1,\n step: 1,\n stepList: [],\n imgNode: new Image(),\n basicResultList: [],\n resultList: [],\n stepProgress: 0,\n loading: false,\n triggerEventAfterIndexChanged: false,\n\n pointCloudLoading: false,\n};\n\n/**\n * 获取当前文件列表的总页数\n * @param state\n */\nexport const getTotalPage = (state: AnnotationState) => {\n const { imgList, imgPageSize } = state;\n return Math.ceil(imgList.length / imgPageSize);\n};\n\nconst calcStepProgress = (fileList: any[], step: number) =>\n fileList.reduce((pre, i) => {\n if (i) {\n const resultStr = i.result;\n const resultObject = jsonParser(resultStr);\n if (resultObject[`step_${step}`]) {\n return pre + 1;\n }\n }\n return pre;\n }, 0) / fileList.length;\n\nconst updateToolInstance = (annotation: AnnotationState, imgNode: HTMLImageElement) => {\n const { step, stepList } = annotation;\n const stepConfig = StepUtils.getCurrentStepInfo(step, stepList);\n const config = ConfigUtils.jsonParser(stepConfig.config);\n\n // 视频工具不支持实例化\n if (ToolUtils.isVideoTool(stepConfig?.tool)) {\n return;\n }\n\n // TODO: 点云实例化对接\n if (ToolUtils.isPointCloudTool(stepConfig?.tool)) {\n return;\n }\n\n const container = document.getElementById('toolContainer');\n\n if (!container) {\n throw `Not exist dom named id-toolContainer`;\n }\n\n const canvasSize = getFormatSize({ width: window.innerWidth, height: window.innerHeight });\n const annotationEngine = new AnnotationEngine({\n container,\n toolName: stepConfig.tool,\n size: canvasSize,\n imgNode,\n config,\n style: JSON.parse(styleString),\n });\n\n return { toolInstance: annotationEngine?.toolInstance, annotationEngine };\n};\n\n/**\n * 初始化imgNode并加载数据\n * @param nextIndex\n * @param nextBasicIndex\n */\nexport const LoadFileAndFileData =\n (nextIndex: number, nextBasicIndex?: number): any =>\n async (dispatch: any, getState: any) => {\n const { stepList, step } = getState().annotation;\n const currentIsVideo = StepUtils.currentToolIsVideo(step, stepList);\n const currentIsPointCloud = StepUtils.currentToolIsPointCloud(step, stepList);\n\n SetAnnotationLoading(dispatch, true);\n\n await dispatch(TryGetFileDataByAPI(nextIndex));\n\n if (currentIsVideo || currentIsPointCloud) {\n dispatch(AfterVideoLoaded(nextIndex));\n return;\n }\n\n dispatch(AfterImageLoaded(nextIndex, nextBasicIndex));\n };\n\n/**\n * 支持并优先外部传入的获取文件接口\n * @param nextIndex\n */\nconst TryGetFileDataByAPI = (nextIndex: number) => async (dispatch: any, getState: any) => {\n const { getFileData, imgList } = getState().annotation;\n if (getFileData) {\n const fileData = await getFileData(imgList[nextIndex], nextIndex);\n dispatch({\n type: ANNOTATION_ACTIONS.SET_FILE_DATA,\n payload: {\n fileData,\n index: nextIndex,\n },\n });\n }\n};\n\nconst AfterVideoLoaded = (nextIndex: number) => (dispatch: any) => {\n SetAnnotationLoading(dispatch, false);\n\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n nextIndex,\n },\n });\n};\n\nconst AfterImageLoaded =\n (nextIndex: number, nextBasicIndex?: number) => (dispatch: any, getState: any) => {\n const { toolInstance, imgList } = getState().annotation;\n const url = imgList?.[nextIndex]?.url;\n ImgUtils.load(url)\n .then((imgNode: HTMLImageElement) => {\n SetAnnotationLoading(dispatch, false);\n\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n imgNode,\n nextIndex,\n nextBasicIndex,\n },\n });\n })\n .catch(() => {\n SetAnnotationLoading(dispatch, false);\n toolInstance?.setErrorImg();\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n nextIndex,\n nextBasicIndex,\n },\n });\n });\n };\n\nexport const annotationReducer = (\n state = initialState,\n action: AnnotationActionTypes,\n): AnnotationState => {\n switch (action.type) {\n case ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE: {\n return {\n ...state,\n toolInstance: action.payload.toolInstance,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_IMG_LIST: {\n return {\n ...state,\n imgList: action.payload.imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.CALC_STEP_PROGRESS: {\n const { imgList, step } = state;\n\n const stepProgress = calcStepProgress(imgList, step);\n\n return {\n ...state,\n stepProgress,\n };\n }\n\n case ANNOTATION_ACTIONS.SUBMIT_FILE_DATA: {\n const { imgList, imgIndex, step, stepList, toolInstance, onSubmit, resultList } = state;\n if (!toolInstance || !imgList[imgIndex]) {\n return state;\n }\n\n const oldResultString = imgList[imgIndex]?.result || '';\n const [, basicImgInfo, extraData] = toolInstance?.exportData() ?? [];\n const customObject = toolInstance?.exportCustomData?.() ?? {};\n\n const resultWithBasicInfo = composeResultWithBasicImgInfo(oldResultString, basicImgInfo);\n const newResultString = composeResult(\n resultWithBasicInfo,\n { step, stepList },\n { rect: resultList },\n customObject,\n );\n\n imgList[imgIndex].result = AnnotationDataUtils.dataCorrection(\n newResultString,\n oldResultString,\n step,\n stepList,\n );\n\n if (extraData) {\n imgList[imgIndex] = {\n ...imgList[imgIndex],\n ...extraData,\n };\n }\n\n // Just for sync imgList\n if (action.payload?.submitType === ESubmitType.SyncImgList) {\n return {\n ...state,\n imgList,\n }\n }\n \n if (onSubmit) {\n onSubmit([imgList[imgIndex]], action.payload?.submitType, imgIndex, imgList);\n }\n\n const stepProgress = calcStepProgress(imgList, step);\n return {\n ...state,\n stepProgress,\n imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.SAVE_RESULT: {\n const { imgList, imgIndex, onSave } = state;\n onSave?.(imgList[imgIndex], imgIndex, imgList);\n return {\n ...state,\n };\n }\n\n /**\n * For data storage in dependent states\n *\n * Features:\n * 1. Get Data from ToolInstance (If it use toolInstance)\n * 2. Filter Data By BasicResultList\n */\n case ANNOTATION_ACTIONS.SUBMIT_RESULT: {\n const { imgList, basicIndex, resultList, toolInstance, basicResultList } = state;\n if (!toolInstance) {\n return state;\n }\n\n const [exportResult] = toolInstance?.exportData() ?? [];\n\n let previousResultList = exportResult;\n\n if (basicResultList?.length > 0) {\n const sourceID = basicResultList[basicIndex]?.id;\n const newResultData = exportResult.map((i: any) => ({ ...i, sourceID }));\n previousResultList = _.cloneDeep(resultList).filter((i: any) => i.sourceID !== sourceID);\n previousResultList.push(...newResultData);\n }\n\n return {\n ...state,\n resultList: previousResultList,\n imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_BASIC_INDEX: {\n const {\n toolInstance,\n step,\n imgList,\n imgIndex,\n stepList,\n annotationEngine,\n resultList,\n basicResultList,\n } = state;\n\n if (!toolInstance || !annotationEngine) {\n return state;\n }\n\n const nextBasicIndex = action.payload.basicIndex;\n const sourceID = basicResultList[nextBasicIndex]?.id;\n\n const fileResult = jsonParser(imgList[imgIndex]?.result);\n const result = (resultList || []).filter((i) => i.sourceID === sourceID);\n\n const stepConfig = getStepConfig(stepList, step);\n\n const { dataSourceStep, tool } = stepConfig;\n const dependStepConfig = getStepConfig(stepList, dataSourceStep);\n let stepBasicResultList = [];\n\n if (dataSourceStep && tool) {\n stepBasicResultList = fileResult[`step_${dataSourceStep}`]?.result;\n\n if (stepBasicResultList?.length > 0) {\n annotationEngine?.setBasicInfo(\n dependStepConfig.tool,\n stepBasicResultList[nextBasicIndex],\n );\n annotationEngine?.launchOperation();\n } else {\n annotationEngine?.setBasicInfo(dependStepConfig.tool);\n annotationEngine?.forbidOperation();\n message.info(i18n.t('NoDependency'));\n }\n }\n\n toolInstance?.setResult(result);\n toolInstance?.history.initRecord(result, true);\n\n return {\n ...state,\n basicIndex: nextBasicIndex,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED: {\n const { triggerEventAfterIndexChanged } = action.payload;\n return {\n ...state,\n triggerEventAfterIndexChanged: !!triggerEventAfterIndexChanged,\n };\n }\n\n case ANNOTATION_ACTIONS.LOAD_FILE_DATA: {\n const { imgList, step, toolInstance, annotationEngine, stepList } = state;\n\n /**\n * TODO\n * Before: !toolInstance || !annotationEngine\n *\n * The roles of toolInstance and annotationEngine need to be clearly distinguished\n */\n if (!toolInstance) {\n return { ...state, imgIndex: action.payload.nextIndex };\n }\n\n const currentStepInfo = StepUtils.getCurrentStepInfo(step, stepList);\n\n const { nextIndex, imgNode, nextBasicIndex, imgError } = action.payload;\n const basicIndex = nextBasicIndex ?? 0;\n\n const fileResult = jsonParser(imgList[nextIndex]?.result);\n\n const stepResult = fileResult[`step_${currentStepInfo.step}`];\n\n const isInitData = !stepResult; // 是否为初始化数据\n\n const basicImgInfo = {\n rotate: fileResult.rotate ?? 0,\n valid: fileResult.valid ?? true,\n };\n\n if (imgNode && imgError !== true) {\n annotationEngine?.setImgNode(imgNode, basicImgInfo);\n } else {\n // Non-graphical tools to initialize base data\n\n toolInstance?.setValid(basicImgInfo.valid);\n }\n\n const stepConfig = getStepConfig(stepList, currentStepInfo.step);\n\n const { dataSourceStep, tool } = stepConfig;\n const dependStepConfig = getStepConfig(stepList, dataSourceStep);\n const hasDataSourceStep = dataSourceStep && tool;\n const stepBasicResultList = fileResult[`step_${dataSourceStep}`]?.result ?? [];\n\n const result = AnnotationDataUtils.getInitialResultList(\n stepResult?.result,\n toolInstance,\n stepConfig,\n stepBasicResultList,\n isInitData,\n );\n\n annotationEngine?.launchOperation();\n\n if (hasDataSourceStep) {\n if (stepBasicResultList?.length > 0) {\n annotationEngine?.setBasicInfo(dependStepConfig.tool, stepBasicResultList[basicIndex]);\n } else {\n // TODO: 禁用绘制交互,有无依赖之间的操作切换\n annotationEngine?.setBasicInfo(dependStepConfig.tool);\n annotationEngine?.forbidOperation();\n message.info(i18n.t('NoDependency'));\n }\n }\n\n // TODO,非查看模式才允许添加数据\n if (currentStepInfo.tool !== 'check') {\n const sourceID = stepBasicResultList[basicIndex]?.id ?? '';\n const resultForBasicIndex = hasDataSourceStep\n ? result.filter((i: { sourceID: string | number }) =>\n CommonToolUtils.isSameSourceID(i.sourceID, sourceID),\n )\n : result;\n toolInstance?.history.initRecord(result, true);\n toolInstance?.setResult(resultForBasicIndex);\n }\n\n return {\n ...state,\n imgIndex: nextIndex,\n basicIndex,\n basicResultList: stepBasicResultList,\n resultList: result,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG: {\n return {\n ...state,\n config: action.payload.config ?? '{}',\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TASK_STEP_LIST: {\n const { stepList } = action.payload;\n return {\n ...state,\n stepList,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TASK_CONFIG: {\n const { stepList, step } = action.payload;\n return {\n ...state,\n stepList,\n step,\n };\n }\n\n case ANNOTATION_ACTIONS.INIT_TOOL: {\n const { imgNode } = state;\n const instance = updateToolInstance(state, imgNode);\n\n if (instance) {\n const { toolInstance, annotationEngine } = instance;\n return {\n ...state,\n toolInstance,\n annotationEngine,\n };\n }\n\n return {\n ...state,\n };\n }\n\n // react hook tool Proprietary operations\n case ANNOTATION_ACTIONS.SET_TOOL: {\n const instance = action.payload?.instance;\n if (instance) {\n return {\n ...state,\n toolInstance: instance,\n // TODO It needs to optimize\n // annotationEngine: {\n // toolInstance: instance,\n // } as any,\n };\n }\n\n return {\n ...state,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT: {\n return {\n ...state,\n onSubmit: action.payload.onSubmit,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_SAVE: {\n return {\n ...state,\n onSave: action.payload.onSave,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE: {\n return {\n ...state,\n onPageChange: action.payload.onPageChange,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE: {\n return {\n ...state,\n onStepChange: action.payload.onStepChange,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA: {\n return {\n ...state,\n getFileData: action.payload.getFileData,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE: {\n return {\n ...state,\n pageSize: action.payload.pageSize,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST: {\n return {\n ...state,\n loadFileList: action.payload.loadFileList,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_BEFORE_ROTATE: {\n return {\n ...state,\n beforeRotate: action.payload.beforeRotate,\n };\n }\n\n case ANNOTATION_ACTIONS.SKIP_BEFORE_PAGE_TURNING: {\n return {\n ...state,\n skipBeforePageTurning: action.payload.skipBeforePageTurning,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_FILE_DATA: {\n const { fileData, index } = action.payload;\n const { imgList } = state;\n const newImgList = [...imgList];\n newImgList[index] = { ...newImgList[index], ...fileData };\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ROTATE: {\n const { toolInstance, beforeRotate } = state;\n\n // DataCheck before rotate.\n if (beforeRotate) {\n if (beforeRotate() === false) {\n return state;\n }\n }\n\n toolInstance?.updateRotate();\n return state;\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ANNOTATION_VALID: {\n const { toolInstance } = state;\n const valid = toolInstance?.valid ?? true;\n\n Modal.destroyAll();\n Modal.confirm({\n content: i18n.t(valid ? 'updateValidFromValidToInValid' : 'updateValidFromInValidToValid'),\n onOk: () => {\n toolInstance?.setValid(!valid);\n },\n okText: i18n.t('Confirm'),\n cancelText: i18n.t('Cancel'),\n });\n\n return state;\n }\n\n case ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT: {\n const { toolInstance, imgIndex, imgList, step } = state;\n if (!toolInstance) {\n return state;\n }\n\n if (imgIndex === 0 || imgIndex >= imgList.length) {\n console.error('无法复制边界外的内容');\n return state;\n }\n const backwardResult = imgList[imgIndex - 1].result;\n if (!backwardResult) {\n return state;\n }\n\n const newResult = AnnotationDataUtils.copyResultChange(\n backwardResult,\n step,\n imgList[imgIndex].result ?? '',\n );\n imgList[imgIndex] = {\n ...imgList[imgIndex],\n result: newResult,\n };\n\n // 更新当前的结果\n const fileResult = jsonParser(newResult);\n const stepResult = fileResult[`step_${step}`];\n const result = stepResult?.result || [];\n\n toolInstance?.setResult(result);\n toolInstance?.history.pushHistory(result);\n\n return {\n ...state,\n imgList: [...imgList],\n };\n }\n\n case ANNOTATION_ACTIONS.SET_STEP: {\n const { stepList, annotationEngine } = state;\n const { toStep } = action.payload;\n\n if (!annotationEngine) {\n return state;\n }\n\n const stepConfig = getStepConfig(stepList, toStep);\n annotationEngine?.setToolName(stepConfig.tool, stepConfig.config);\n\n return {\n ...state,\n step: toStep,\n toolInstance: annotationEngine?.toolInstance,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_LOADING: {\n const { loading } = action.payload;\n\n return {\n ...state,\n loading: !!loading,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_POINT_CLOUD_LOADING: {\n const { pointCloudLoading } = action.payload;\n\n return {\n ...state,\n pointCloudLoading: !!pointCloudLoading,\n };\n }\n\n case ANNOTATION_ACTIONS.BATCH_UPDATE_TRACK_ID: {\n const { id, newID, rangeIndex } = action.payload;\n const { imgList, imgIndex, onSubmit } = state;\n const newImgList = imgList.map((v, i) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n return {\n ...v,\n result: PointCloudUtils.batchUpdateTrackID({ id, newID, result: v.result }),\n };\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList);\n }\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n // eslint-disable-next-line no-fallthrough\n default:\n return state;\n }\n};\n"],"names":["this"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{ESubmitType as y}from"../../../../../../constant/index.js";import{ToSubmitFileData as P,BatchUpdateTrackID as F}from"../../../../../../store/annotation/actionCreators.js";import{useDispatch as _}from"../../../../../../store/ctx.js";import{Form as l,Modal as h,InputNumber as i}from"antd";import n,{useState as x}from"react";import{useTranslation as I}from"react-i18next";var w=Object.defineProperty,B=Object.defineProperties,D=Object.getOwnPropertyDescriptors,m=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,p=(r,e,t)=>e in r?w(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,k=(r,e)=>{for(var t in e||(e={}))v.call(e,t)&&p(r,t,e[t]);if(m)for(var t of m(e))O.call(e,t)&&p(r,t,e[t]);return r},C=(r,e)=>B(r,D(e));const T={labelCol:{span:8},wrapperCol:{span:16}},d=(r,e=!1)=>{const t=Number(r);return!!(typeof r=="undefined"||t<0||isNaN(t)||e===!0&&t===0)},f=(r,e,t=0)=>{const u=Number(e);if(d(e))return Promise.reject(new Error("\u8BF7\u8F93\u5165\u4E00\u4E2A\u5927\u4E8E\u7B49\u4E8E0\u7684\u6570\u5B57"));const o=u.toString().split(".")[1];if((o==null?void 0:o.length)>t){let a=`\u8BF7\u8F93\u5165\u4E00\u4E2A\u5C0F\u6570\u4F4D\u6570\u4E0D\u8D85\u8FC7${t}\u4F4D\u6570\u7684\u6570\u5B57`;return t<1&&(a="\u8BF7\u8F93\u5165\u4E00\u4E2A\u6B63\u6574\u6570"),Promise.reject(a)}return Promise.resolve()},c=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"},{validator:(r,e)=>f(r,e,0)}],j=({id:r})=>{const e=_(),[t,u]=x(!1),[o]=l.useForm(),{t:a}=I(),E=s=>{e(P(y.SyncImgList)),e(F(r,s.newID,[s.prevPage-1,s.nextPage-1])),u(!1)},b=()=>u(!1),g=()=>o.submit();return n.createElement(n.Fragment,null,n.createElement("a",{style:{color:"#666FFF"},onClick:()=>u(!0)},a("BatchUpdateText")),n.createElement(h,{title:a("BatchUpdateTrackID"),visible:t,onCancel:b,onOk:g,wrapClassName:"labelbee-custom-modal"},n.createElement(l,C(k({},T),{form:o,onFinish:E}),n.createElement(l.Item,{name:"id",label:a("CurrentBoxTrackIDs")},r),n.createElement(l.Item,{name:"newID",label:a("TrackIDUnifiedAs"),rules:c},n.createElement(i,null)),n.createElement(l.Item,{label:a("UnifiedTrackIDRange"),required:!0},n.createElement(l.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:c,name:"prevPage"},n.createElement(i,null)),n.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},"-"),n.createElement(l.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:c,name:"nextPage"},n.createElement(i,null)),n.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},a("Page"))))))};export{f as decimalCheck,j as default,d as isInvalidNumber};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.tsx"],"sourcesContent":["import { ESubmitType } from '@/constant';\nimport { BatchUpdateTrackID, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport { useDispatch } from '@/store/ctx';\nimport { Form, InputNumber, Modal } from 'antd';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\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\nexport const decimalCheck = (rule: any, value: any, decimalNum = 0) => {\n const intValue = Number(value);\n if (isInvalidNumber(value)) {\n return Promise.reject(new Error('请输入一个大于等于0的数字'));\n }\n const decimal = intValue.toString().split('.')[1];\n if (decimal?.length > decimalNum) {\n let errorText = `请输入一个小数位数不超过${decimalNum}位数的数字`;\n if (decimalNum < 1) {\n errorText = `请输入一个正整数`;\n }\n return Promise.reject(errorText);\n }\n return Promise.resolve();\n};\n\nconst defaultNumberRules = [\n { required: true, message: '请填写一个数字' },\n { validator: (rule: any, value: any) => decimalCheck(rule, value, 0) },\n];\n\ninterface IProps {\n id: number;\n}\n\nconst BatchUpdateModal = ({ id }: 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 dispatch(ToSubmitFileData(ESubmitType.SyncImgList));\n dispatch(BatchUpdateTrackID(id, values.newID, [values.prevPage - 1, values.nextPage - 1]));\n setVisible(false);\n };\n\n const onCancel = () => setVisible(false);\n\n const onOk = () => form.submit();\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('TrackIDUnifiedAs')} rules={defaultNumberRules}>\n <InputNumber />\n </Form.Item>\n <Form.Item label={t('UnifiedTrackIDRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block', width: 'calc(50% - 24px)' }}\n rules={defaultNumberRules}\n name='prevPage'\n >\n <InputNumber />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n lineHeight: '32px',\n textAlign: 'center',\n }}\n >\n -\n </span>\n <Form.Item\n style={{ display: 'inline-block', width: 'calc(50% - 24px)' }}\n rules={defaultNumberRules}\n name='nextPage'\n >\n <InputNumber />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n lineHeight: '32px',\n textAlign: 'center',\n }}\n >\n {t('Page')}\n </span>\n </Form.Item>\n </Form>\n </Modal>\n </>\n );\n};\n\nexport default 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),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
+ import e,{useContext as I,useState as E,useEffect as h}from"react";import{EditFilled as j}from"@ant-design/icons";import{ToolIcons as A}from"../ToolIcons.js";import{cTool as F}from"@labelbee/lb-annotation";import{PointCloudContext as k}from"../../../../components/pointCloudView/PointCloudContext.js";import{Divider as y,Tag as V,Input as N,Select as w,message as b}from"antd";import U from"../../../../utils/StepUtils.js";import{connect as M}from"react-redux";import{jsonParser as z}from"../../../../utils/index.js";import{useStatus as W}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as L}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as D}from"react-i18next";import{LabelBeeContext as O}from"../../../../store/ctx.js";import R from"./components/batchUpdateModal/index.js";import{PointCloudUtils as $}from"@labelbee/lb-utils";import _ from"../../../../components/attributeList/index.js";import{useAttribute as q}from"../../../../components/pointCloudView/hooks/useAttribute.js";const G=({imgList:l,imgIndex:i})=>{const s=I(k),[a,m]=E([]),{t:u}=D();h(()=>{const n=l;let t=new Map;m($.getAllPointCloudResult({imgList:n,extraBoxList:x,ignoreIndexList:[i]}).filter(r=>!r.trackID||t.get(r.trackID)?!1:(t.set(r.trackID,!0),!0)).sort((r,c)=>{var d,p;const v=(d=r==null?void 0:r.trackID)!=null?d:0,C=(p=c==null?void 0:c.trackID)!=null?p:0;return v-C}).map(r=>{var c;return(c=r==null?void 0:r.trackID)!=null?c:0}))},[s.pointCloudBoxList,l]);const{pointCloudBoxList:x}=s;return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:16}},u("AllTrackIDs")),e.createElement("div",null,a.map(n=>e.createElement(V,{color:"#F3F4FF",key:n,style:{color:"#666",marginBottom:8}},n))))},H=()=>{const[l,i]=E(!1),{pointCloudBoxList:s}=I(k),{selectedBox:a,updateSelectedBox:m}=L(),[u,x]=E(""),{t:n}=D(),t=a==null?void 0:a.info.trackID,r=d=>!!s.find(v=>v.trackID===d&&v.id!==(a==null?void 0:a.info.id)),c=(d=!1)=>{const p=parseInt(u,10);if(d&&i(!1),isNaN(p)){b.error(n("PositiveIntegerCheck"));return}if(u.indexOf(".")>-1){b.error(n("NotAllowDecimalPointsInTrackID"));return}if(r(p)){b.error(n("DuplicateTrackIDsExist"));return}if(!(p>0)){b.error(n("PositiveIntegerCheck"));return}m({trackID:p})};return h(()=>{i(!1)},[t]),e.createElement("div",{style:{padding:24}},e.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},e.createElement("span",null,n("CurrentBoxTrackIDs")),t&&e.createElement(R,{id:t})),e.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},l&&t?e.createElement(N,{defaultValue:t,onChange:d=>{x(d.target.value)},disabled:!t,size:"small",onBlur:()=>{c()},onPressEnter:()=>{c(!0)}}):e.createElement("span",null,t),e.createElement(j,{style:{color:"#999",marginLeft:16,cursor:typeof t!="undefined"?"pointer":"not-allowed"},onClick:()=>{t&&i(!l)}})))},J=({attributeList:l,subAttributeList:i,toolInstance:s})=>{var a,m,u;const{selectedBox:x}=L(),n=I(k),{t}=D(),{defaultAttribute:r}=q(),c={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},d={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},p=o=>{s.setDefaultAttribute(o)},v=(o,g)=>{s.setSubAttribute(o,g)},C=l.map(o=>({label:o.key,value:o.value,color:o==null?void 0:o.color}));return e.createElement("div",null,e.createElement("div",{style:c},t("Attribute")),e.createElement(_,{list:C,forbidDefault:!0,selectedAttribute:(u=(m=(a=n.selectedPointCloudBox)==null?void 0:a.attribute)!=null?m:r)!=null?u:"",attributeChanged:o=>p(o)}),e.createElement(y,{style:{margin:0}}),x&&e.createElement(e.Fragment,null,i.map(o=>{var g,B,S,P,T;return(o==null?void 0:o.subSelected)&&e.createElement("div",{style:{marginTop:12}},e.createElement("div",{style:d},t("SubAttribute"),"-",o.key),((g=o.subSelected)==null?void 0:g.length)<5?e.createElement(_,{list:o.subSelected.map(f=>({label:f.key,value:f.value})),selectedAttribute:(S=(B=n.selectedPointCloudBox)==null?void 0:B.subAttribute)==null?void 0:S[o.value],num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:f=>v(o.value,f),style:{marginBottom:12}}):e.createElement(w,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(T=(P=n.selectedPointCloudBox)==null?void 0:P.subAttribute)==null?void 0:T[o.value],placeholder:t("PleaseSelect"),onChange:f=>v(o.value,f),allowClear:!0},o.subSelected.map(f=>e.createElement(w.Option,{key:f.value,value:f.value},f.key))),e.createElement(y,{style:{margin:0}}))})))},K=({stepInfo:l,toolInstance:i,imgList:s,imgIndex:a})=>{var m,u;const{updatePointCloudPattern:x,pointCloudPattern:n}=W(),t=z(l.config),r=(m=t==null?void 0:t.attributeList)!=null?m:[],c=(t==null?void 0:t.secondaryAttributeConfigurable)===!0?(u=t==null?void 0:t.inputList)!=null?u:[]:[];return e.createElement(e.Fragment,null,e.createElement(A,{toolName:F.EPointCloudName.PointCloud,selectedToolName:n,onChange:d=>x==null?void 0:x(d)}),(t==null?void 0:t.trackConfigurable)===!0&&e.createElement(e.Fragment,null,e.createElement(G,{imgList:s,imgIndex:a}),e.createElement(H,null),e.createElement(y,{style:{margin:0}})),e.createElement(J,{toolInstance:i,attributeList:r,subAttributeList:c}))},Q=l=>{var i,s,a;const m=U.getCurrentStepInfo((i=l.annotation)==null?void 0:i.step,(s=l.annotation)==null?void 0:s.stepList),u=(a=l.annotation)==null?void 0:a.toolInstance;return{stepInfo:m,toolInstance:u,imgList:l.annotation.imgList,imgIndex:l.annotation.imgIndex}};var X=M(Q,null,null,{context:O})(K);export{X 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 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":";;;;;;;;;;;;;AA0IA,MAAM,mBAAmB,CAAC;AAAA,EACxB,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,CAKI,KAAA;AAlJN,EAAA,IAAA,EAAA,CAAA;AAmJE,EAAA,MAAM,MAAM,UAAW,CAAA,iBAAA,CAAA,CAAA;AACvB,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,UAAY,EAAA,GAAA;AAAA,IACZ,QAAU,EAAA,EAAA;AAAA,IACV,YAAc,EAAA,EAAA;AAAA,GAAA,CAAA;AAGhB,EAAM,MAAA,YAAA,GAAe,CAAC,SAAsB,KAAA;AAC1C,IAAA,YAAA,CAAa,mBAAoB,CAAA,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGnC,EAAM,MAAA,eAAA,GAAkB,CAAC,GAAA,EAAa,KAAkB,KAAA;AACtD,IAAA,YAAA,CAAa,gBAAgB,GAAK,EAAA,KAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGpC,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,KAAO,EAAA,CAAE,OAAS,EAAA,EAAA,EAAI,YAAc,EAAA,gBAAA,CAAA;AAAA,GAAA,sCACtC,KAAD,EAAA;AAAA,IAAK,OAAO,CAAE,YAAA,EAAc,EAAI,EAAA,QAAA,EAAU,IAAI,UAAY,EAAA,GAAA,CAAA;AAAA,GAAQ,EAAA,CAAA,CAAE,KACpE,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAD,EAAA;AAAA,IAAK,KAAA,EAAO,CAAE,YAAc,EAAA,EAAA,CAAA;AAAA,GAAA,sCACzB,GAAD,EAAA;AAAA,IAAK,IAAM,EAAA,CAAA;AAAA,IAAG,KAAO,EAAA,UAAA;AAAA,GAClB,EAAA,CAAA,CAAE,WAEL,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAD,EAAA;AAAA,IAAK,IAAM,EAAA,EAAA;AAAA,GACT,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAM,KAAP,EAAA;AAAA,IACE,KAAA,EAAO,CAAE,KAAO,EAAA,MAAA,CAAA;AAAA,IAChB,KAAA,EAAO,CAAI,EAAA,GAAA,GAAA,CAAA,qBAAA,KAAJ,IAA2B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAA;AAAA,IAClC,QAAU,EAAA,CAAC,CAAM,KAAA,YAAA,CAAa,EAAE,MAAO,CAAA,KAAA,CAAA;AAAA,GAAA,EAEtC,aAAc,CAAA,GAAA,CAAI,CAAC,CAAA,yCACjB,KAAD,EAAA;AAAA,IAAO,KAAK,CAAE,CAAA,KAAA;AAAA,IAAO,OAAO,CAAE,CAAA,KAAA;AAAA,IAAO,KAAA,EAAO,CAAE,YAAc,EAAA,EAAA,CAAA;AAAA,GACzD,EAAA,CAAA,CAAE,GAMb,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA;AAAA,IAAK,KAAO,EAAA,UAAA;AAAA,GAAA,EAAY,KAAE,CAAE,CAAA,cAAA,CAAA,CAAA,EAC3B,gBAAiB,CAAA,GAAA,CAChB,CAAC,YAAc,KAAA;AA3LvB,IAAA,IAAA,GAAA,EAAA,EAAA,CAAA;AA4LU,IAAc,OAAA,CAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,WAAA,yCACX,GAAD,EAAA;AAAA,MAAK,KAAK,YAAa,CAAA,KAAA;AAAA,MAAO,KAAA,EAAO,CAAE,YAAc,EAAA,EAAA,CAAA;AAAA,KAAA,sCAClD,GAAD,EAAA;AAAA,MACE,IAAM,EAAA,CAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,KAAO,EAAA,SAAA;AAAA,QACP,OAAS,EAAA,MAAA;AAAA,QACT,cAAgB,EAAA,YAAA;AAAA,QAChB,UAAY,EAAA,QAAA;AAAA,OAAA;AAAA,KAGb,EAAA,YAAA,CAAa,GAEhB,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAD,EAAA;AAAA,MAAK,IAAM,EAAA,EAAA;AAAA,KAAA,sCACR,MAAD,EAAA;AAAA,MACE,KAAA,EAAO,CAAE,KAAO,EAAA,MAAA,CAAA;AAAA,MAChB,QAAU,EAAA,KAAA;AAAA,MACV,OAAO,CAAI,EAAA,GAAA,CAAA,GAAA,GAAA,GAAA,CAAA,qBAAA,KAAJ,IAA2B,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,YAAA,KAA3B,mBAA0C,YAAa,CAAA,KAAA,CAAA;AAAA,MAC9D,aAAa,CAAE,CAAA,cAAA,CAAA;AAAA,MACf,QAAU,EAAA,CAAC,KAAU,KAAA,eAAA,CAAgB,aAAa,KAAO,EAAA,KAAA,CAAA;AAAA,MACzD,UAAY,EAAA,IAAA;AAAA,KAAA,EAEX,aAAa,WAAY,CAAA,GAAA,CAAI,CAAC,GAC7B,qBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,MAAR,EAAA;AAAA,MAAe,KAAK,GAAI,CAAA,KAAA;AAAA,MAAO,OAAO,GAAI,CAAA,KAAA;AAAA,KAAA,EACvC,GAAI,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAY3B,MAAM,qBAA0C,GAAA,CAAC,CAAE,QAAA,EAAU,YAAmB,CAAA,KAAA;AAhOhF,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAiOE,EAAA,MAAM,CAAE,WAAgB,CAAA,GAAA,YAAA,EAAA,CAAA;AACxB,EAAM,MAAA,CAAE,yBAAyB,iBAAsB,CAAA,GAAA,SAAA,EAAA,CAAA;AAEvD,EAAM,MAAA,MAAA,GAAS,WAAW,QAAS,CAAA,MAAA,CAAA,CAAA;AACnC,EAAM,MAAA,aAAA,GAAgB,CAAQ,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,EAAA,CAAA;AAC/C,EAAA,MAAM,mBACJ,CAAQ,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,8BAAA,MAAmC,OAAO,CAAQ,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,SAAA,KAAR,YAAqB,EAAK,GAAA,EAAA,CAAA;AAE9E,EACE,uBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,sCACG,SAAD,EAAA;AAAA,IACE,QAAA,EAAU,MAAM,eAAgB,CAAA,UAAA;AAAA,IAChC,gBAAkB,EAAA,iBAAA;AAAA,IAClB,QAAA,EAAU,CAAC,CAAA,KAAM,uBAA0B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,uBAAA,CAAA,CAAA,CAAA;AAAA,GAI5C,CAAA,EAAA,WAAA,wCACE,gBAAD,EAAA;AAAA,IACE,YAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAOV,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AA7P7C,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA8PE,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;AACxF,EAAM,MAAA,YAAA,GAAe,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,CAAA;AAEvC,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,YAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAIJ,8BAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAC7D,CAAA,CAAA,CAAA,qBAAA,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/index.tsx"],"sourcesContent":["import React, { useContext, useState, useEffect } from 'react';\nimport { EditFilled } from '@ant-design/icons';\nimport { ToolIcons } from '../ToolIcons';\nimport { cTool } from '@labelbee/lb-annotation';\nimport { PointCloudContext } from '@/components/pointCloudView/PointCloudContext';\nimport { Select, Tag, message, Input, Divider } 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';\nimport BatchUpdateModal from './components/batchUpdateModal';\nimport { IFileItem } from '@/types/data';\nimport { PointCloudUtils } from '@labelbee/lb-utils';\nimport AttributeList from '@/components/attributeList';\nimport { IInputList } from '@/types/main';\nimport { useAttribute } from '@/components/pointCloudView/hooks/useAttribute';\n\ninterface IProps {\n stepInfo: IStepInfo;\n toolInstance: ICustomToolInstance; // Created by useCustomToolInstance.\n imgList: IFileItem[];\n imgIndex: number;\n}\n\n// Temporarily hidden, this feature does not support the function for the time being.\nconst AnnotatedBox = ({ imgList, imgIndex }: { imgList: IFileItem[]; imgIndex: number }) => {\n const ptCtx = useContext(PointCloudContext);\n const [showIDs, setShowIds] = useState<number[]>([]);\n const { t } = useTranslation();\n\n useEffect(() => {\n const newImgList = imgList as Array<{ result: string }>;\n let trackMap = new Map();\n setShowIds(\n PointCloudUtils.getAllPointCloudResult({\n imgList: newImgList,\n extraBoxList: pointCloudBoxList,\n ignoreIndexList: [imgIndex],\n })\n .filter((v) => {\n if (!v.trackID) {\n return false;\n }\n\n if (trackMap.get(v.trackID)) {\n return false;\n }\n trackMap.set(v.trackID, true);\n return true;\n })\n .sort((a, b) => {\n const aTrackID = a?.trackID ?? 0;\n const bTrackID = b?.trackID ?? 0;\n\n return aTrackID - bTrackID;\n })\n .map((v) => v?.trackID ?? 0),\n );\n }, [ptCtx.pointCloudBoxList, imgList]);\n\n const { pointCloudBoxList } = ptCtx;\n\n return (\n <div style={{ padding: 24, borderBottom: '1px solid #eee' }}>\n <div style={{ marginBottom: 16 }}>{t('AllTrackIDs')}</div>\n <div>\n {showIDs.map((id) => (\n <Tag color='#F3F4FF' key={id} style={{ color: '#666', marginBottom: 8 }}>\n {id}\n </Tag>\n ))}\n </div>\n </div>\n );\n};\n\nconst BoxTrackIDInput = () => {\n const [isEdit, setIsEdit] = useState(false);\n const { pointCloudBoxList } = useContext(PointCloudContext);\n const { selectedBox, updateSelectedBox } = useSingleBox();\n const [inputValue, setInputValue] = useState('');\n const { t } = useTranslation();\n\n const selectedBoxTrackID = selectedBox?.info.trackID;\n\n const hasDuplicateTrackID = (trackID: number) => {\n const duplicateBox = pointCloudBoxList.find(\n (v) => v.trackID === trackID && v.id !== selectedBox?.info.id,\n );\n return !!duplicateBox;\n };\n\n const applyInputValue = (isBlurEvent = false) => {\n const newTrackID = parseInt(inputValue, 10);\n\n if (isBlurEvent) {\n setIsEdit(false);\n }\n\n if (isNaN(newTrackID)) {\n message.error(t('PositiveIntegerCheck'));\n return;\n }\n\n if (inputValue.indexOf('.') > -1) {\n message.error(t('NotAllowDecimalPointsInTrackID'));\n return;\n }\n\n if (hasDuplicateTrackID(newTrackID)) {\n message.error(t('DuplicateTrackIDsExist'));\n return;\n }\n\n if (!(newTrackID > 0)) {\n message.error(t('PositiveIntegerCheck'));\n return;\n }\n\n updateSelectedBox({ trackID: newTrackID });\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>{t('CurrentBoxTrackIDs')}</span>\n {selectedBoxTrackID && <BatchUpdateModal id={selectedBoxTrackID} />}\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: typeof selectedBoxTrackID !== 'undefined' ? '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 { selectedBox } = useSingleBox();\n const ptx = useContext(PointCloudContext);\n const { t } = useTranslation();\n const { defaultAttribute } = useAttribute();\n\n const titleStyle = {\n fontWeight: 500,\n fontSize: 14,\n margin: '12px 0 8px 20px',\n };\n\n const subTitleStyle = {\n margin: '12px 20px 8px',\n fontSize: 14,\n fontWeight: 500,\n wordWrap: 'break-word' as any, // WordWrap Type ?\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 const list = attributeList.map((i: any) => ({\n label: i.key,\n value: i.value,\n color: i?.color,\n }));\n\n return (\n <div>\n <div style={titleStyle}>{t('Attribute')}</div>\n <AttributeList\n list={list}\n forbidDefault={true}\n selectedAttribute={ptx.selectedPointCloudBox?.attribute ?? defaultAttribute ?? ''}\n attributeChanged={(attribute: string) => setAttribute(attribute)}\n />\n <Divider style={{ margin: 0 }} />\n {selectedBox && (\n <>\n {subAttributeList.map(\n (subAttribute) =>\n subAttribute?.subSelected && (\n <div style={{ marginTop: 12 }}>\n <div style={subTitleStyle}>\n {t('SubAttribute')}-{subAttribute.key}\n </div>\n {subAttribute.subSelected?.length < 5 ? (\n <AttributeList\n list={subAttribute.subSelected.map((v: IInputList) => ({\n label: v.key,\n value: v.value,\n }))}\n selectedAttribute={\n ptx.selectedPointCloudBox?.subAttribute?.[subAttribute.value]\n }\n num='-'\n forbidColor={true}\n forbidDefault={true}\n attributeChanged={(value) => setSubAttribute(subAttribute.value, value)}\n style={{ marginBottom: 12 }}\n />\n ) : (\n <Select\n style={{ margin: '0px 21px 17px 16px', width: '87%' }}\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 )}\n <Divider style={{ margin: 0 }} />\n </div>\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\nconst PointCloudToolSidebar: React.FC<IProps> = ({ stepInfo, toolInstance, imgList, imgIndex }) => {\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 {config?.trackConfigurable === true && (\n <>\n <AnnotatedBox imgList={imgList} imgIndex={imgIndex} />\n <BoxTrackIDInput />\n <Divider style={{ margin: 0 }} />\n </>\n )}\n <AttributeUpdater\n toolInstance={toolInstance}\n attributeList={attributeList}\n subAttributeList={subAttributeList}\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 imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloudToolSidebar,\n);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA+BA,MAAM,YAAe,GAAA,CAAC,CAAE,OAAA,EAAS,QAA2D,CAAA,KAAA;AAC1F,EAAA,MAAM,QAAQ,UAAW,CAAA,iBAAA,CAAA,CAAA;AACzB,EAAM,MAAA,CAAC,OAAS,EAAA,UAAA,CAAA,GAAc,QAAmB,CAAA,EAAA,CAAA,CAAA;AACjD,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAa,GAAA,OAAA,CAAA;AACnB,IAAA,IAAI,WAAW,IAAI,GAAA,EAAA,CAAA;AACnB,IAAA,UAAA,CACE,gBAAgB,sBAAuB,CAAA;AAAA,MACrC,OAAS,EAAA,UAAA;AAAA,MACT,YAAc,EAAA,iBAAA;AAAA,MACd,iBAAiB,CAAC,QAAA,CAAA;AAAA,KAEjB,CAAA,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA;AACb,MAAI,IAAA,CAAC,EAAE,OAAS,EAAA;AACd,QAAO,OAAA,KAAA,CAAA;AAAA,OAAA;AAGT,MAAI,IAAA,QAAA,CAAS,GAAI,CAAA,CAAA,CAAE,OAAU,CAAA,EAAA;AAC3B,QAAO,OAAA,KAAA,CAAA;AAAA,OAAA;AAET,MAAS,QAAA,CAAA,GAAA,CAAI,EAAE,OAAS,EAAA,IAAA,CAAA,CAAA;AACxB,MAAO,OAAA,IAAA,CAAA;AAAA,KAER,CAAA,CAAA,IAAA,CAAK,CAAC,CAAA,EAAG,CAAM,KAAA;AAxDxB,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAyDU,MAAM,MAAA,QAAA,GAAW,CAAG,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAA,OAAA,KAAH,IAAc,GAAA,EAAA,GAAA,CAAA,CAAA;AAC/B,MAAM,MAAA,QAAA,GAAW,CAAG,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAA,OAAA,KAAH,IAAc,GAAA,EAAA,GAAA,CAAA,CAAA;AAE/B,MAAA,OAAO,QAAW,GAAA,QAAA,CAAA;AAAA,KAEnB,CAAA,CAAA,GAAA,CAAI,CAAC,CAAG,KAAA;AA9DjB,MAAA,IAAA,EAAA,CAAA;AA8DoB,MAAA,OAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,YAAH,IAAc,GAAA,EAAA,GAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAE7B,EAAA,CAAC,MAAM,iBAAmB,EAAA,OAAA,CAAA,CAAA,CAAA;AAE7B,EAAA,MAAM,CAAE,iBAAsB,CAAA,GAAA,KAAA,CAAA;AAE9B,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,KAAO,EAAA,CAAE,OAAS,EAAA,EAAA,EAAI,YAAc,EAAA,gBAAA,CAAA;AAAA,GAAA,sCACtC,KAAD,EAAA;AAAA,IAAK,KAAA,EAAO,CAAE,YAAc,EAAA,EAAA,CAAA;AAAA,GAAO,EAAA,CAAA,CAAE,aACrC,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,IAAA,EACG,QAAQ,GAAI,CAAA,CAAC,EACZ,qBAAA,KAAA,CAAA,aAAA,CAAC,GAAD,EAAA;AAAA,IAAK,KAAM,EAAA,SAAA;AAAA,IAAU,GAAK,EAAA,EAAA;AAAA,IAAI,KAAO,EAAA,CAAE,KAAO,EAAA,MAAA,EAAQ,YAAc,EAAA,CAAA,CAAA;AAAA,GACjE,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAQb,MAAM,kBAAkB,MAAM;AAC5B,EAAM,MAAA,CAAC,MAAQ,EAAA,SAAA,CAAA,GAAa,QAAS,CAAA,KAAA,CAAA,CAAA;AACrC,EAAM,MAAA,CAAE,qBAAsB,UAAW,CAAA,iBAAA,CAAA,CAAA;AACzC,EAAM,MAAA,CAAE,aAAa,iBAAsB,CAAA,GAAA,YAAA,EAAA,CAAA;AAC3C,EAAM,MAAA,CAAC,UAAY,EAAA,aAAA,CAAA,GAAiB,QAAS,CAAA,EAAA,CAAA,CAAA;AAC7C,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAM,MAAA,kBAAA,GAAqB,2CAAa,IAAK,CAAA,OAAA,CAAA;AAE7C,EAAM,MAAA,mBAAA,GAAsB,CAAC,OAAoB,KAAA;AAC/C,IAAM,MAAA,YAAA,GAAe,iBAAkB,CAAA,IAAA,CACrC,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,KAAY,OAAW,IAAA,CAAA,CAAE,EAAO,MAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,IAAK,CAAA,EAAA,CAAA,CAAA,CAAA;AAE7D,IAAA,OAAO,CAAC,CAAC,YAAA,CAAA;AAAA,GAAA,CAAA;AAGX,EAAM,MAAA,eAAA,GAAkB,CAAC,WAAA,GAAc,KAAU,KAAA;AAC/C,IAAM,MAAA,UAAA,GAAa,SAAS,UAAY,EAAA,EAAA,CAAA,CAAA;AAExC,IAAA,IAAI,WAAa,EAAA;AACf,MAAU,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAGZ,IAAA,IAAI,MAAM,UAAa,CAAA,EAAA;AACrB,MAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,sBAAA,CAAA,CAAA,CAAA;AAChB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAI,IAAA,UAAA,CAAW,OAAQ,CAAA,GAAA,CAAA,GAAO,CAAI,CAAA,EAAA;AAChC,MAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,gCAAA,CAAA,CAAA,CAAA;AAChB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAA,IAAI,oBAAoB,UAAa,CAAA,EAAA;AACnC,MAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,wBAAA,CAAA,CAAA,CAAA;AAChB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAI,IAAA,eAAe,CAAI,CAAA,EAAA;AACrB,MAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,sBAAA,CAAA,CAAA,CAAA;AAChB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAA,iBAAA,CAAkB,CAAE,OAAS,EAAA,UAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAG/B,EAAA,SAAA,CAAU,MAAM;AACd,IAAU,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GAAA,EACT,CAAC,kBAAA,CAAA,CAAA,CAAA;AAEJ,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,KAAA,EAAO,CAAE,OAAS,EAAA,EAAA,CAAA;AAAA,GAAA,sCACpB,KAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,YAAc,EAAA,EAAA;AAAA,MACd,OAAS,EAAA,MAAA;AAAA,MACT,cAAgB,EAAA,eAAA;AAAA,MAChB,UAAY,EAAA,QAAA;AAAA,KAAA;AAAA,GAAA,sCAGb,MAAD,EAAA,IAAA,EAAO,EAAE,oBACR,CAAA,CAAA,EAAA,kBAAA,wCAAuB,gBAAD,EAAA;AAAA,IAAkB,EAAI,EAAA,kBAAA;AAAA,GAAA,CAAA,CAAA,sCAE9C,KAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,OAAS,EAAA,MAAA;AAAA,MACT,cAAgB,EAAA,eAAA;AAAA,MAChB,UAAY,EAAA,QAAA;AAAA,KAAA;AAAA,GAGb,EAAA,MAAA,IAAU,kBACT,mBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA;AAAA,IACE,YAAc,EAAA,kBAAA;AAAA,IACd,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,MAAA,aAAA,CAAc,EAAE,MAAO,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAEzB,UAAU,CAAC,kBAAA;AAAA,IACX,IAAK,EAAA,OAAA;AAAA,IACL,QAAQ,MAAM;AACZ,MAAA,eAAA,EAAA,CAAA;AAAA,KAAA;AAAA,IAEF,cAAc,MAAM;AAClB,MAAgB,eAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,mBAInB,KAAA,CAAA,aAAA,CAAA,MAAA,EAAD,IAAO,EAAA,kBAAA,CAAA,sCAER,UAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,KAAO,EAAA,MAAA;AAAA,MACP,UAAY,EAAA,EAAA;AAAA,MACZ,MAAQ,EAAA,OAAO,kBAAuB,KAAA,WAAA,GAAc,SAAY,GAAA,aAAA;AAAA,KAAA;AAAA,IAElE,SAAS,MAAM;AACb,MAAA,IAAI,kBAAoB,EAAA;AACtB,QAAA,SAAA,CAAU,CAAC,MAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AASzB,MAAM,mBAAmB,CAAC;AAAA,EACxB,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,CAKI,KAAA;AAnMN,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAoME,EAAA,MAAM,CAAE,WAAgB,CAAA,GAAA,YAAA,EAAA,CAAA;AACxB,EAAA,MAAM,MAAM,UAAW,CAAA,iBAAA,CAAA,CAAA;AACvB,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAA,MAAM,CAAE,gBAAqB,CAAA,GAAA,YAAA,EAAA,CAAA;AAE7B,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,UAAY,EAAA,GAAA;AAAA,IACZ,QAAU,EAAA,EAAA;AAAA,IACV,MAAQ,EAAA,iBAAA;AAAA,GAAA,CAAA;AAGV,EAAA,MAAM,aAAgB,GAAA;AAAA,IACpB,MAAQ,EAAA,eAAA;AAAA,IACR,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA,GAAA;AAAA,IACZ,QAAU,EAAA,YAAA;AAAA,GAAA,CAAA;AAGZ,EAAM,MAAA,YAAA,GAAe,CAAC,SAAsB,KAAA;AAC1C,IAAA,YAAA,CAAa,mBAAoB,CAAA,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGnC,EAAM,MAAA,eAAA,GAAkB,CAAC,GAAA,EAAa,KAAkB,KAAA;AACtD,IAAA,YAAA,CAAa,gBAAgB,GAAK,EAAA,KAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGpC,EAAA,MAAM,IAAO,GAAA,aAAA,CAAc,GAAI,CAAA,CAAC,CAAY,MAAA;AAAA,IAC1C,OAAO,CAAE,CAAA,GAAA;AAAA,IACT,OAAO,CAAE,CAAA,KAAA;AAAA,IACT,OAAO,CAAG,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAA,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAGZ,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAD,IACE,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA;AAAA,IAAK,KAAO,EAAA,UAAA;AAAA,GAAa,EAAA,CAAA,CAAE,WAC3B,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAD,EAAA;AAAA,IACE,IAAA;AAAA,IACA,aAAe,EAAA,IAAA;AAAA,IACf,mBAAmB,CAAI,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAA,qBAAA,KAAJ,mBAA2B,SAA3B,KAAA,IAAA,GAAA,EAAA,GAAwC,qBAAxC,IAA4D,GAAA,EAAA,GAAA,EAAA;AAAA,IAC/E,gBAAA,EAAkB,CAAC,SAAA,KAAsB,YAAa,CAAA,SAAA,CAAA;AAAA,GAAA,CAAA,sCAEvD,OAAD,EAAA;AAAA,IAAS,KAAA,EAAO,CAAE,MAAQ,EAAA,CAAA,CAAA;AAAA,GAAA,CAAA,EACzB,WACC,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EACG,gBAAiB,CAAA,GAAA,CAChB,CAAC,YAAc,KAAA;AAjP3B,IAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAkPc,IAAc,OAAA,CAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,WAAA,yCACX,KAAD,EAAA;AAAA,MAAK,KAAA,EAAO,CAAE,SAAW,EAAA,EAAA,CAAA;AAAA,KAAA,sCACtB,KAAD,EAAA;AAAA,MAAK,KAAO,EAAA,aAAA;AAAA,KACT,EAAA,CAAA,CAAE,cAAgB,CAAA,EAAA,GAAA,EAAE,YAAa,CAAA,GAAA,CAAA,EAEnC,CAAa,CAAA,GAAA,GAAA,YAAA,CAAA,WAAA,KAAb,IAA0B,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,MAAA,IAAS,CAClC,mBAAA,KAAA,CAAA,aAAA,CAAC,aAAD,EAAA;AAAA,MACE,IAAM,EAAA,YAAA,CAAa,WAAY,CAAA,GAAA,CAAI,CAAC,CAAmB,MAAA;AAAA,QACrD,OAAO,CAAE,CAAA,GAAA;AAAA,QACT,OAAO,CAAE,CAAA,KAAA;AAAA,OAAA,CAAA,CAAA;AAAA,MAEX,mBACE,CAAI,GAAA,GAAA,CAAA,GAAA,GAAA,GAAA,CAAA,qBAAA,KAAJ,IAA2B,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,YAAA,KAA3B,oBAA0C,YAAa,CAAA,KAAA,CAAA;AAAA,MAEzD,GAAI,EAAA,GAAA;AAAA,MACJ,WAAa,EAAA,IAAA;AAAA,MACb,aAAe,EAAA,IAAA;AAAA,MACf,gBAAkB,EAAA,CAAC,KAAU,KAAA,eAAA,CAAgB,aAAa,KAAO,EAAA,KAAA,CAAA;AAAA,MACjE,KAAA,EAAO,CAAE,YAAc,EAAA,EAAA,CAAA;AAAA,KAAA,CAAA,uCAGxB,MAAD,EAAA;AAAA,MACE,KAAO,EAAA,CAAE,MAAQ,EAAA,oBAAA,EAAsB,KAAO,EAAA,KAAA,CAAA;AAAA,MAC9C,OAAO,CAAI,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAA,qBAAA,KAAJ,IAA2B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,KAA3B,mBAA0C,YAAa,CAAA,KAAA,CAAA;AAAA,MAC9D,aAAa,CAAE,CAAA,cAAA,CAAA;AAAA,MACf,QAAU,EAAA,CAAC,KAAU,KAAA,eAAA,CAAgB,aAAa,KAAO,EAAA,KAAA,CAAA;AAAA,MACzD,UAAY,EAAA,IAAA;AAAA,KAAA,EAEX,aAAa,WAAY,CAAA,GAAA,CAAI,CAAC,GAC7B,qBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,MAAR,EAAA;AAAA,MAAe,KAAK,GAAI,CAAA,KAAA;AAAA,MAAO,OAAO,GAAI,CAAA,KAAA;AAAA,KACvC,EAAA,GAAA,CAAI,GAKb,CAAA,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAD,EAAA;AAAA,MAAS,KAAA,EAAO,CAAE,MAAQ,EAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAU5C,MAAM,wBAA0C,CAAC,CAAE,QAAU,EAAA,YAAA,EAAc,SAAS,QAAe,CAAA,KAAA;AA/RnG,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAgSE,EAAM,MAAA,CAAE,yBAAyB,iBAAsB,CAAA,GAAA,SAAA,EAAA,CAAA;AAEvD,EAAM,MAAA,MAAA,GAAS,WAAW,QAAS,CAAA,MAAA,CAAA,CAAA;AACnC,EAAM,MAAA,aAAA,GAAgB,CAAQ,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,EAAA,CAAA;AAC/C,EAAA,MAAM,mBACJ,CAAQ,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,8BAAA,MAAmC,OAAO,CAAQ,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,SAAA,KAAR,YAAqB,EAAK,GAAA,EAAA,CAAA;AAE9E,EACE,uBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,sCACG,SAAD,EAAA;AAAA,IACE,QAAA,EAAU,MAAM,eAAgB,CAAA,UAAA;AAAA,IAChC,gBAAkB,EAAA,iBAAA;AAAA,IAClB,QAAA,EAAU,CAAC,CAAA,KAAM,uBAA0B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,uBAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,EAE5C,CAAQ,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,iBAAA,MAAsB,IAC7B,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,sCACG,YAAD,EAAA;AAAA,IAAc,OAAA;AAAA,IAAkB,QAAA;AAAA,GAAA,CAAA,kBAC/B,KAAA,CAAA,aAAA,CAAA,eAAA,EAAD,IACA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAD,EAAA;AAAA,IAAS,KAAA,EAAO,CAAE,MAAQ,EAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA,sCAG7B,gBAAD,EAAA;AAAA,IACE,YAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAMR,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AA9T7C,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA+TE,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;AACxF,EAAM,MAAA,YAAA,GAAe,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,CAAA;AAEvC,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA,EAAS,MAAM,UAAW,CAAA,OAAA;AAAA,IAC1B,QAAA,EAAU,MAAM,UAAW,CAAA,QAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAI/B,8BAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAC7D,CAAA,CAAA,CAAA,qBAAA,CAAA;;;;"}
@@ -1 +1 @@
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
+ import{Popover as j}from"antd/es";import e,{useState as k}from"react";import w from"../../../../../assets/annotation/toolHotKeyIcon/icon_kj1.svg.js";import I from"../../../../../assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js";import{EToolName as s}from"../../../../../data/enums/ToolType.js";import P from"./rectToolShortCutTable/index.js";import N from"./point/index.js";import R from"./polygon/index.js";import H from"./line/index.js";import O from"./tag/index.js";import M from"./text/index.js";import K from"./videoTag/index.js";import L from"./pointCloud/index.js";import V from"./scribble/index.js";import{footerCls as B}from"../../index.js";import{useTranslation as W}from"react-i18next";import{cTool as $}from"@labelbee/lb-annotation";var A=Object.defineProperty,h=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,d=(t,r,o)=>r in t?A(t,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[r]=o,D=(t,r)=>{for(var o in r||(r={}))F.call(r,o)&&d(t,o,r[o]);if(h)for(var o of h(r))z.call(r,o)&&d(t,o,r[o]);return t};const{EVideoToolName:G,EPointCloudName:U}=$,g={[s.Rect]:P,[s.Tag]:O,[s.Point]:N,[s.Polygon]:R,[s.Line]:H,[s.Text]:M,[G.VideoTagTool]:K,[U.PointCloud]:L,[s.ScribbleTool]:V},q=({icon:t})=>typeof t=="string"?e.createElement("img",{width:16,height:16,src:t}):t||null,T=({title:t,style:r,shortCutList:o})=>{const[u,p]=k(!1),{t:y}=W(),E={width:320,display:"flex",justifyContent:"space-between",margin:16},i={display:"block",padding:"0 3px",minWidth:"20px",marginRight:"3px",border:"1px solid rgba(204,204,204,1)",verticalAlign:"middle",fontSize:"12px",textAlign:"center"},C=(n,m)=>e.createElement("div",{style:E,key:m},e.createElement("span",{style:{display:"flex",alignItems:"center"}},e.createElement(q,{icon:n.icon}),e.createElement("span",{style:{marginLeft:n.icon?16:0}},y(n.name))),e.createElement("span",{style:{display:"flex",alignItems:"center"}},n.noticeInfo&&e.createElement("span",{style:{marginRight:"5px",color:"#CCCCCC"}},y(n.noticeInfo)),v(n.shortCut,n.shortCutUseHtml,n.linkSymbol))),v=(n,m=!1,S="+")=>{if(!n)return null;const _=n.map((l,a)=>{var f;const c={display:"flex",alignItems:"center"};return m?e.createElement("span",{key:a,style:c},e.createElement("span",{style:i,dangerouslySetInnerHTML:{__html:l}})):a<n.length-1?typeof l=="number"?e.createElement("span",{key:a,style:c},e.createElement("span",{style:i},l),e.createElement("span",{style:{marginRight:"3px"}},"~")):(l==null?void 0:l.startsWith("data"))?e.createElement("span",{key:a,style:c},e.createElement("span",{className:"shortCutButton",style:{marginRight:"3px"}},e.createElement("img",{width:16,height:23,src:l})),e.createElement("span",{style:{marginRight:"3px"}},"+")):e.createElement("span",{key:a,style:c},e.createElement("span",{style:i},l),e.createElement("span",{style:{marginRight:"3px"}},S)):typeof l=="number"?e.createElement("span",{key:a,style:c},e.createElement("span",{style:i},l)):((f=l==null?void 0:l.startsWith)==null?void 0:f.call(l,"data"))?e.createElement("span",{className:"shortCutButton",key:a,style:{marginRight:"3px"}},e.createElement("img",{width:16,height:23,src:l})):e.createElement("span",{style:i,key:a},l)});return e.createElement("div",{style:{display:"flex",justifyContent:"space-around",alignItems:"center"}},_)},b=e.createElement("div",{className:`${B}__hotkey-content`},o==null?void 0:o.map((n,m)=>C(n,m))),x=r||{width:100};return e.createElement(j,{placement:"topLeft",content:b,onMouseMove:()=>p(!0),onMouseLeave:()=>{p(!1)},overlayClassName:"tool-hotkeys-popover",className:"tipsBar"},e.createElement("div",{className:"shortCutTitle",onMouseMove:()=>p(!0),onMouseLeave:()=>p(!1),style:x},t!=null?t:e.createElement("a",{className:"svg"},e.createElement("img",{src:u?I:w,width:15,height:13,style:{marginRight:"5px"}}),y("Hotkeys"))))},J=({style:t,title:r,toolName:o})=>{if(!o||!g[o])return null;const u={style:t,title:r,shortCutList:g[o]};return e.createElement(T,D({},u))};export{T as ToolHotKeyCom,J as default,g as shortCutTable};
@@ -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';\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
+ {"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 toolName?: string;\n style?: any;\n title?: React.ReactElement<any>;\n}\n\ninterface IShortCutInfo {\n name: string;\n icon?: string;\n shortCut?: string[];\n noticeInfo?: string;\n}\n\ninterface IComponentsProps {\n style?: any;\n title?: React.ReactElement<any>;\n shortCutList: IShortCutInfo[];\n}\n\nexport const shortCutTable: { [a: string]: IShortCutInfo[] } = {\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\nexport const ToolHotKeyCom: React.FC<IComponentsProps> = ({ title, style, shortCutList }) => {\n const [svgFlag, setFlag] = useState(false);\n const { t } = useTranslation();\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\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 {shortCutList?.map((info: any, index: number) => setHotKey(info, index))}\n </div>\n );\n const containerStyle = style || { width: 100 };\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 className='tipsBar'\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\nconst ToolHotKey: React.FC<IProps> = ({ style, title, toolName }) => {\n if (!toolName) {\n return null;\n }\n\n // 不存在对应的工具则不展示的快捷键\n if (!shortCutTable[toolName]) {\n return null;\n }\n\n const props = {\n style,\n title,\n shortCutList: shortCutTable[toolName],\n };\n\n return <ToolHotKeyCom {...props} />;\n};\n\nexport default ToolHotKey;\n"],"names":["pointToolShortcutTable","polygonToolShortcutTable","videoToolShortCutTable","hotKeyHoverSvg","hotKeySvg"],"mappings":"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"}
@@ -1 +1 @@
1
- import l from"react";import n from"./ToolHotKey/index.js";import i from"../../../../utils/StepUtils.js";import{useSelector as s}from"../../../../store/ctx.js";const a=()=>{const o=s(t=>{var e,r;return i.getCurrentStepInfo((e=t==null?void 0:t.annotation)==null?void 0:e.step,(r=t.annotation)==null?void 0:r.stepList)});return l.createElement("div",{className:"tipsBar"},l.createElement(n,{toolName:o==null?void 0:o.tool}))};export{a as default};
1
+ import n from"react";import l from"./ToolHotKey/index.js";import i from"../../../../utils/StepUtils.js";import{useSelector as s}from"../../../../store/ctx.js";const p=()=>{const t=s(o=>{var e,r;return i.getCurrentStepInfo((e=o==null?void 0:o.annotation)==null?void 0:e.step,(r=o.annotation)==null?void 0:r.stepList)});return n.createElement(l,{toolName:t==null?void 0:t.tool})};export{p as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/FooterTips/index.tsx"],"sourcesContent":["import React from 'react';\nimport ToolHotKey from './ToolHotKey';\nimport StepUtils from '@/utils/StepUtils';\nimport { useSelector } from '@/store/ctx';\n\nconst FooterTips: React.FC = () => {\n // @ts-ignore\n const stepInfo = useSelector((state) =>\n // @ts-ignore\n StepUtils.getCurrentStepInfo(state?.annotation?.step, state.annotation?.stepList),\n );\n\n return (\n <div className='tipsBar'>\n <ToolHotKey toolName={stepInfo?.tool} />\n </div>\n );\n};\n\nexport default FooterTips;\n"],"names":[],"mappings":";;;;;AAKA,MAAM,aAAuB,MAAM;AAEjC,EAAM,MAAA,QAAA,GAAW,WAAY,CAAA,CAAC,KAAO,KAAA;AAPvC,IAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AASI,IAAA,OAAA,SAAA,CAAU,mBAAmB,CAAO,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,UAAA,KAAP,mBAAmB,IAAM,EAAA,CAAA,EAAA,GAAA,KAAA,CAAM,eAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAG1E,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,SAAA;AAAA,GAAA,sCACZ,UAAD,EAAA;AAAA,IAAY,UAAU,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,IAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/FooterTips/index.tsx"],"sourcesContent":["import React from 'react';\nimport ToolHotKey from './ToolHotKey';\nimport StepUtils from '@/utils/StepUtils';\nimport { useSelector } from '@/store/ctx';\n\nconst FooterTips: React.FC = () => {\n // @ts-ignore\n const stepInfo = useSelector((state) =>\n // @ts-ignore\n StepUtils.getCurrentStepInfo(state?.annotation?.step, state.annotation?.stepList),\n );\n\n return <ToolHotKey toolName={stepInfo?.tool} />;\n};\n\nexport default FooterTips;\n"],"names":[],"mappings":";;;;;AAKA,MAAM,aAAuB,MAAM;AAEjC,EAAM,MAAA,QAAA,GAAW,WAAY,CAAA,CAAC,KAAO,KAAA;AAPvC,IAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AASI,IAAA,OAAA,SAAA,CAAU,mBAAmB,CAAO,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,UAAA,KAAP,mBAAmB,IAAM,EAAA,CAAA,EAAA,GAAA,KAAA,CAAM,eAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAG1E,EAAA,2CAAQ,UAAD,EAAA;AAAA,IAAY,UAAU,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,IAAA;AAAA,GAAA,CAAA,CAAA;AAAA;;;;"}
@@ -1 +1 @@
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};
1
+ import{prefix as L}from"../../../constant/index.js";import{PageBackward as f,PageForward as x,PageJump as T}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 P from"./FooterTips/index.js";import H from"./HiddenTips/index.js";import R from"./PageNumber/index.js";import $ from"./ZoomController/index.js";import{Pagination as J}from"./Pagination.js";import{cTool as K}from"@labelbee/lb-annotation";import{shortCutTable as Z,ToolHotKeyCom as z}from"./FooterTips/ToolHotKey/index.js";const{EPointCloudName:_}=K,l=`${L}-footer`,b=()=>t.createElement(k,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),E=({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),q=e=>{var r;const{stepList:s,step:m,basicResultList:a,basicIndex:c,mode:u="light",footer:i=E,skipBeforePageTurning:o}=e,n=D(),{t:y}=B(),p=(r=s[m-1])!=null?r:{},I=!!p.dataSourceStep,h=()=>{if(o){o(()=>n(f()));return}n(f())},j=()=>{if(o){o(()=>n(x()));return}n(x())},v=F=>{const g=~~F-1;if(o){o(()=>n(T(g)));return}n(T(g))},d=t.createElement(J,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:v,pageBackward:h,pageForward:j,footerCls:l}),C=I&&a.length>0?t.createElement("span",null,y("curItems",{current:c+1,total:a.length})):null;return typeof i=="function"?i===E&&p.tool===_.PointCloud?t.createElement("div",{className:`${l}`,style:e.style},t.createElement(P,null),t.createElement("div",{style:{flex:1}}),d):t.createElement("div",{className:`${l}`,style:e.style},i({footerTips:t.createElement(P,null),hiddenTips:t.createElement(H,null),pageNumber:t.createElement(R,null),pagination:d,zoomController:t.createElement($,{mode:u}),curItems:C,footerDivider:t.createElement(b,null),shortCutTable:Z,ToolHotKeyCom:z})):i},A=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 G=S(A,null,null,{context:w})(q);export{b as FooterDivider,G as default,l as footerCls};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/toolFooter/index.tsx"],"sourcesContent":["import { prefix } from '@/constant';\nimport { AppState } from '@/store';\nimport { PageBackward, PageForward, PageJump } from '@/store/annotation/actionCreators';\nimport { getTotalPage } from '@/store/annotation/reducer';\nimport { RenderFooter } from '@/types/main';\nimport { IStepInfo } from '@/types/step';\nimport { Divider } from 'antd/es';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { useDispatch, LabelBeeContext } from '@/store/ctx';\nimport FooterTips from './FooterTips';\nimport HiddenTips from './HiddenTips';\nimport PageNumber from './PageNumber';\nimport ZoomController from './ZoomController';\nimport { Pagination } from './Pagination';\nimport { cTool } from '@labelbee/lb-annotation';\n\nconst { EPointCloudName } = cTool;\n\nexport type FooterTheme = 'light' | 'dark';\ninterface IProps {\n totalPage: number;\n imgIndex: number;\n style?: { [key: string]: any };\n stepList: IStepInfo[];\n step: number;\n basicResultList: any[];\n basicIndex: number;\n mode?: FooterTheme; // 后面通过 context 的形式进行编写\n footer?: RenderFooter;\n\n skipBeforePageTurning?: (pageTurning: Function) => void;\n}\n\nexport const footerCls = `${prefix}-footer`;\n\nexport const FooterDivider = () => (\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n);\n\n/**\n * default footer renderer\n * @param param0\n * @returns\n */\nconst renderFooter: RenderFooter = ({\n footerTips,\n hiddenTips,\n pageNumber,\n pagination,\n zoomController,\n curItems,\n footerDivider,\n}) => {\n return (\n <>\n {footerTips}\n <div style={{ flex: 1 }} />\n {hiddenTips}\n {pageNumber}\n {pagination}\n {curItems}\n {footerDivider}\n {zoomController}\n </>\n );\n};\n\nconst ToolFooter: React.FC<IProps> = (props: IProps) => {\n const {\n stepList,\n step,\n basicResultList,\n basicIndex,\n mode = 'light',\n footer = renderFooter,\n skipBeforePageTurning,\n } = props;\n\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const stepInfo = stepList[step - 1] ?? {};\n const hasSourceStep = !!stepInfo.dataSourceStep;\n\n const pageBackward = () => {\n if (skipBeforePageTurning) {\n skipBeforePageTurning(() => dispatch(PageBackward()));\n return;\n }\n\n dispatch(PageBackward());\n };\n\n const pageForward = () => {\n if (skipBeforePageTurning) {\n skipBeforePageTurning(() => dispatch(PageForward()));\n return;\n }\n dispatch(PageForward());\n };\n\n const toPageNumber = (page: string) => {\n const imgIndex = ~~page - 1;\n if (skipBeforePageTurning) {\n skipBeforePageTurning(() => dispatch(PageJump(imgIndex)));\n return;\n }\n dispatch(PageJump(imgIndex));\n };\n\n const pagination = (\n <Pagination\n imgIndex={props.imgIndex}\n totalPage={props.totalPage}\n pageJump={toPageNumber}\n pageBackward={pageBackward}\n pageForward={pageForward}\n footerCls={footerCls}\n />\n );\n\n const curItems =\n hasSourceStep && basicResultList.length > 0 ? (\n <span>{t('curItems', { current: basicIndex + 1, total: basicResultList.length })}</span>\n ) : null;\n\n if (typeof footer === 'function') {\n if (footer === renderFooter && stepInfo.tool === EPointCloudName.PointCloud) {\n return (\n <div className={`${footerCls}`} style={props.style}>\n <FooterTips />\n <div style={{ flex: 1 }} />\n {pagination}\n </div>\n );\n }\n\n return (\n <div className={`${footerCls}`} style={props.style}>\n {footer({\n footerTips: <FooterTips />,\n hiddenTips: <HiddenTips />,\n pageNumber: <PageNumber />,\n pagination,\n zoomController: <ZoomController mode={mode} />,\n curItems,\n footerDivider: <FooterDivider />,\n })}\n </div>\n );\n }\n\n return footer;\n};\n\nconst mapStateToProps = (state: AppState) => ({\n totalPage: getTotalPage(state.annotation),\n imgIndex: state.annotation.imgIndex,\n stepList: state.annotation.stepList,\n step: state.annotation.step,\n basicIndex: state.annotation.basicIndex,\n basicResultList: state.annotation.basicResultList,\n skipBeforePageTurning: state.annotation.skipBeforePageTurning,\n});\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(ToolFooter);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/toolFooter/index.tsx"],"sourcesContent":["import { prefix } from '@/constant';\nimport { AppState } from '@/store';\nimport { PageBackward, PageForward, PageJump } from '@/store/annotation/actionCreators';\nimport { getTotalPage } from '@/store/annotation/reducer';\nimport { RenderFooter } from '@/types/main';\nimport { IStepInfo } from '@/types/step';\nimport { Divider } from 'antd/es';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { useDispatch, LabelBeeContext } from '@/store/ctx';\nimport FooterTips from './FooterTips';\nimport HiddenTips from './HiddenTips';\nimport PageNumber from './PageNumber';\nimport ZoomController from './ZoomController';\nimport { Pagination } from './Pagination';\nimport { cTool } from '@labelbee/lb-annotation';\nimport { shortCutTable, ToolHotKeyCom } from './FooterTips/ToolHotKey';\n\nconst { EPointCloudName } = cTool;\n\nexport type FooterTheme = 'light' | 'dark';\ninterface IProps {\n totalPage: number;\n imgIndex: number;\n style?: { [key: string]: any };\n stepList: IStepInfo[];\n step: number;\n basicResultList: any[];\n basicIndex: number;\n mode?: FooterTheme; // 后面通过 context 的形式进行编写\n footer?: RenderFooter;\n\n skipBeforePageTurning?: (pageTurning: Function) => void;\n}\n\nexport const footerCls = `${prefix}-footer`;\n\nexport const FooterDivider = () => (\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n);\n\n/**\n * default footer renderer\n * @param param0\n * @returns\n */\nconst renderFooter: RenderFooter = ({\n footerTips,\n hiddenTips,\n pageNumber,\n pagination,\n zoomController,\n curItems,\n footerDivider,\n}) => {\n return (\n <>\n {footerTips}\n <div style={{ flex: 1 }} />\n {hiddenTips}\n {pageNumber}\n {pagination}\n {curItems}\n {footerDivider}\n {zoomController}\n </>\n );\n};\n\nconst ToolFooter: React.FC<IProps> = (props: IProps) => {\n const {\n stepList,\n step,\n basicResultList,\n basicIndex,\n mode = 'light',\n footer = renderFooter,\n skipBeforePageTurning,\n } = props;\n\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const stepInfo = stepList[step - 1] ?? {};\n const hasSourceStep = !!stepInfo.dataSourceStep;\n\n const pageBackward = () => {\n if (skipBeforePageTurning) {\n skipBeforePageTurning(() => dispatch(PageBackward()));\n return;\n }\n\n dispatch(PageBackward());\n };\n\n const pageForward = () => {\n if (skipBeforePageTurning) {\n skipBeforePageTurning(() => dispatch(PageForward()));\n return;\n }\n dispatch(PageForward());\n };\n\n const toPageNumber = (page: string) => {\n const imgIndex = ~~page - 1;\n if (skipBeforePageTurning) {\n skipBeforePageTurning(() => dispatch(PageJump(imgIndex)));\n return;\n }\n dispatch(PageJump(imgIndex));\n };\n\n const pagination = (\n <Pagination\n imgIndex={props.imgIndex}\n totalPage={props.totalPage}\n pageJump={toPageNumber}\n pageBackward={pageBackward}\n pageForward={pageForward}\n footerCls={footerCls}\n />\n );\n\n const curItems =\n hasSourceStep && basicResultList.length > 0 ? (\n <span>{t('curItems', { current: basicIndex + 1, total: basicResultList.length })}</span>\n ) : null;\n\n if (typeof footer === 'function') {\n if (footer === renderFooter && stepInfo.tool === EPointCloudName.PointCloud) {\n return (\n <div className={`${footerCls}`} style={props.style}>\n <FooterTips />\n <div style={{ flex: 1 }} />\n {pagination}\n </div>\n );\n }\n\n return (\n <div className={`${footerCls}`} style={props.style}>\n {footer({\n footerTips: <FooterTips />,\n hiddenTips: <HiddenTips />,\n pageNumber: <PageNumber />,\n pagination,\n zoomController: <ZoomController mode={mode} />,\n curItems,\n footerDivider: <FooterDivider />,\n shortCutTable,\n ToolHotKeyCom,\n })}\n </div>\n );\n }\n\n return footer;\n};\n\nconst mapStateToProps = (state: AppState) => ({\n totalPage: getTotalPage(state.annotation),\n imgIndex: state.annotation.imgIndex,\n stepList: state.annotation.stepList,\n step: state.annotation.step,\n basicIndex: state.annotation.basicIndex,\n basicResultList: state.annotation.basicResultList,\n skipBeforePageTurning: state.annotation.skipBeforePageTurning,\n});\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(ToolFooter);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import r,{useState as j,useCallback as u}from"react";import{useDispatch as x,useSelector as h}from"../../../../store/ctx.js";import k from"../../../../assets/annotation/common/icon_r.svg.js";import _ from"../../../../assets/annotation/common/icon_next.svg.js";import E from"../../../../assets/annotation/common/icon_back.svg.js";import b from"../../../../assets/annotation/common/icon_rA.svg.js";import H from"../../../../assets/annotation/common/icon_nextA.svg.js";import $ from"../../../../assets/annotation/common/icon_backA.svg.js";import C from"../../../../assets/annotation/common/icon_save.svg.js";import A from"../../../../assets/annotation/common/icon_saveA.svg.js";import{prefix as w}from"../../../../constant/index.js";import{EToolName as R}from"../../../../data/enums/ToolType.js";import{ChangeSave as z}from"../../../../store/annotation/actionCreators.js";import{useTranslation as V}from"react-i18next";import{cTool as P}from"@labelbee/lb-annotation";const{EVideoToolName:d,EPointCloudName:B}=P;var t;(function(a){a.Hover="#666fff",a.Normal="#cccccc"})(t||(t={}));const I=a=>{const[i,l]=j(""),{stepInfo:e}=a,g=x(),{annotation:{toolInstance:n,onSave:p}}=h(o=>({annotation:o.annotation,imgAttribute:o.imgAttribute})),{t:S}=V(),c=[R.Tag,d.VideoTagTool].includes(e==null?void 0:e.tool),v=[d.VideoTagTool].includes(e==null?void 0:e.tool),f=[B.PointCloud].includes(e==null?void 0:e.tool),s=a.isBegin||c,N=()=>{e.dataSourceStep!==0&&e.dataSourceStep!==void 0||n==null||n.updateRotate()},T=u(()=>{n==null||n.undo()},[n]),y=u(()=>{n==null||n.redo()},[n]);let m=[{toolName:"save",title:"Save",show:!!p,commonSvg:C,selectedSvg:A,click:()=>{g(z)},style:{fontSize:"12px",color:!s&&i==="save"?t.Hover:t.Normal}},{toolName:"revocation",title:"Undo",show:!0,commonSvg:E,selectedSvg:$,click:()=>{c||T()},style:{opacity:s===!0?.4:1,fontSize:"12px",color:!s&&i==="revocation"?t.Hover:t.Normal}},{toolName:"restore",title:"Redo",show:!0,commonSvg:_,selectedSvg:H,click:()=>{c||y()},style:{opacity:s===!0?.4:1,fontSize:"12px",color:!s&&i==="restore"?t.Hover:t.Normal}},{toolName:"rotate",title:"Rotate",show:!0,selectedSvg:b,commonSvg:k,click:()=>{v||N()},style:{opacity:v===!0?.4:1,fontSize:"12px",color:!s&&i==="rotate"?t.Hover:t.Normal}}];return f&&(m=m.slice(0,1)),r.createElement("div",{className:`${w}-header__hotKey`},m.map(o=>o.show&&r.createElement("div",{key:o.toolName,className:"item",onMouseEnter:()=>l(o.toolName),onMouseLeave:()=>l("")},r.createElement("a",{className:"item",onClick:o.click},r.createElement("img",{className:"singleTool",src:i===o.toolName?o.selectedSvg:o.commonSvg,style:o.style}),r.createElement("div",{style:o.style},S(o.title))))))};export{I as default};
1
+ import r,{useState as j,useCallback as u}from"react";import{useDispatch as x,useSelector as h}from"../../../../store/ctx.js";import k from"../../../../assets/annotation/common/icon_r.svg.js";import _ from"../../../../assets/annotation/common/icon_next.svg.js";import E from"../../../../assets/annotation/common/icon_back.svg.js";import b from"../../../../assets/annotation/common/icon_rA.svg.js";import H from"../../../../assets/annotation/common/icon_nextA.svg.js";import $ from"../../../../assets/annotation/common/icon_backA.svg.js";import C from"../../../../assets/annotation/common/icon_save.svg.js";import A from"../../../../assets/annotation/common/icon_saveA.svg.js";import{prefix as w}from"../../../../constant/index.js";import{EToolName as R}from"../../../../data/enums/ToolType.js";import{ChangeSave as z}from"../../../../store/annotation/actionCreators.js";import{useTranslation as V}from"react-i18next";import{cTool as P}from"@labelbee/lb-annotation";const{EVideoToolName:d,EPointCloudName:B}=P;var t;(function(a){a.Hover="#666fff",a.Normal="#cccccc"})(t||(t={}));const I=a=>{const[i,l]=j(""),{stepInfo:e}=a,g=x(),{annotation:{toolInstance:n,onSave:p}}=h(o=>({annotation:o.annotation,imgAttribute:o.imgAttribute})),{t:S}=V(),c=[R.Tag,d.VideoTagTool].includes(e==null?void 0:e.tool),v=[d.VideoTagTool].includes(e==null?void 0:e.tool),f=[B.PointCloud].includes(e==null?void 0:e.tool),s=a.isBegin||c,N=()=>{e.dataSourceStep!==0&&e.dataSourceStep!==void 0||n==null||n.updateRotate()},T=u(()=>{n==null||n.undo()},[n]),y=u(()=>{n==null||n.redo()},[n]);let m=[{toolName:"save",title:"Save",show:!!p,commonSvg:C,selectedSvg:A,click:()=>{g(z)},style:{fontSize:"12px",color:!s&&i==="save"?t.Hover:t.Normal}},{toolName:"revocation",title:"Undo",show:!0,commonSvg:E,selectedSvg:$,click:()=>{c||T()},style:{opacity:s===!0?.4:1,fontSize:"12px",color:!s&&i==="revocation"?t.Hover:t.Normal}},{toolName:"restore",title:"Redo",show:!0,commonSvg:_,selectedSvg:H,click:()=>{c||y()},style:{opacity:s===!0?.4:1,fontSize:"12px",color:!s&&i==="restore"?t.Hover:t.Normal}},{toolName:"rotate",title:"Rotate",show:!0,selectedSvg:b,commonSvg:k,click:()=>{v||N()},style:{opacity:v===!0?.4:1,fontSize:"12px",color:!s&&i==="rotate"?t.Hover:t.Normal}}];return f&&(m=m.slice(0,3)),r.createElement("div",{className:`${w}-header__hotKey`},m.map(o=>o.show&&r.createElement("div",{key:o.toolName,className:"item",onMouseEnter:()=>l(o.toolName),onMouseLeave:()=>l("")},r.createElement("a",{className:"item",onClick:o.click},r.createElement("img",{className:"singleTool",src:i===o.toolName?o.selectedSvg:o.commonSvg,style:o.style}),r.createElement("div",{style:o.style},S(o.title))))))};export{I as default};