@labelbee/lb-components 1.7.1 → 1.8.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.js +1 -1
- package/dist/components/pointCloudView/PointCloudBackView.js +1 -1
- package/dist/components/pointCloudView/PointCloudInfos.js +1 -1
- package/dist/components/pointCloudView/PointCloudListener.js +1 -1
- package/dist/components/pointCloudView/PointCloudSideView.js +1 -1
- package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
- package/dist/components/pointCloudView/hooks/useConfig.js +1 -0
- package/dist/components/pointCloudView/hooks/useHistory.js +1 -1
- package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
- package/dist/components/pointCloudView/index.js +1 -1
- package/dist/hooks/annotation.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/store/Actions.js +1 -1
- package/dist/store/annotation/actionCreators.js +1 -1
- package/dist/store/annotation/reducer.js +1 -1
- package/dist/types/App.d.ts +1 -0
- package/dist/types/components/pointCloudView/PointCloudBackView.d.ts +4 -1
- package/dist/types/components/pointCloudView/PointCloudInfos.d.ts +5 -2
- package/dist/types/components/pointCloudView/PointCloudSideView.d.ts +4 -1
- package/dist/types/components/pointCloudView/PointCloudTopView.d.ts +6 -1
- package/dist/types/components/pointCloudView/hooks/useConfig.d.ts +5 -0
- package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +2 -2
- package/dist/types/components/pointCloudView/index.d.ts +3 -0
- package/dist/types/hooks/annotation.d.ts +3 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/store/Actions.d.ts +1 -0
- package/dist/types/store/annotation/actionCreators.d.ts +1 -0
- package/dist/types/store/annotation/reducer.d.ts +28 -1
- package/dist/types/store/annotation/types.d.ts +4 -1
- package/dist/views/MainView/index.js +1 -1
- package/dist/views/MainView/sidebar/SwitchAttributeList/index.js +1 -1
- package/es/App.js +1 -1
- package/es/App.js.map +1 -1
- package/es/components/pointCloudView/PointCloudBackView.js +1 -1
- package/es/components/pointCloudView/PointCloudBackView.js.map +1 -1
- package/es/components/pointCloudView/PointCloudInfos.js +1 -1
- package/es/components/pointCloudView/PointCloudInfos.js.map +1 -1
- package/es/components/pointCloudView/PointCloudListener.js +1 -1
- package/es/components/pointCloudView/PointCloudListener.js.map +1 -1
- package/es/components/pointCloudView/PointCloudSideView.js +1 -1
- package/es/components/pointCloudView/PointCloudSideView.js.map +1 -1
- package/es/components/pointCloudView/PointCloudTopView.js +1 -1
- package/es/components/pointCloudView/PointCloudTopView.js.map +1 -1
- package/es/components/pointCloudView/hooks/useConfig.js +1 -24
- package/es/components/pointCloudView/hooks/useHistory.js +1 -1
- package/es/components/pointCloudView/hooks/useHistory.js.map +1 -1
- package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
- package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -1
- package/es/components/pointCloudView/index.js +1 -1
- package/es/components/pointCloudView/index.js.map +1 -1
- package/es/hooks/annotation.js +1 -1
- package/es/hooks/annotation.js.map +1 -1
- package/es/index.css +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/store/Actions.js +1 -1
- package/es/store/Actions.js.map +1 -1
- package/es/store/annotation/actionCreators.js +1 -1
- package/es/store/annotation/actionCreators.js.map +1 -1
- package/es/store/annotation/reducer.js +1 -1
- package/es/store/annotation/reducer.js.map +1 -1
- package/es/views/MainView/index.js +1 -1
- package/es/views/MainView/index.js.map +1 -1
- package/es/views/MainView/sidebar/SwitchAttributeList/index.js +1 -1
- package/es/views/MainView/sidebar/SwitchAttributeList/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionCreators.js","sources":["../../../src/store/annotation/actionCreators.ts"],"sourcesContent":["import { ANNOTATION_ACTIONS } from '@/store/Actions';\nimport { IStepInfo } from '@/types/step';\nimport {\n GetFileData,\n LoadFileList,\n IFileItem,\n OnPageChange,\n OnSave,\n OnStepChange,\n OnSubmit,\n} from '@/types/data';\nimport { AnnotationActionTypes, ToolInstance } from './types';\nimport { LoadFileAndFileData, getStepConfig } from './reducer';\nimport { ESubmitType } from '@/constant';\nimport { EPageTurningOperation } from '@/data/enums/AnnotationSize';\nimport PageOperator from '@/utils/PageOperator';\nimport { jsonParser } from '@/utils';\nimport { IPointCloudBox } from '@labelbee/lb-utils';\n\nconst dispatchTasks = (dispatch: any, tasks: any[]) => tasks.map((task) => dispatch(task));\n\n/**\n * @param {pageTurningOperation} pageTurningOperation 翻页操作\n * @returns {ESubmitType} 提数据交类型\n */\nconst getSubmitByPageOperation = (pageTurningOperation: EPageTurningOperation) => {\n if (pageTurningOperation === EPageTurningOperation.Forward) {\n return ESubmitType.Forward;\n }\n\n if (pageTurningOperation === EPageTurningOperation.Backward) {\n return ESubmitType.Backward;\n }\n\n if (pageTurningOperation === EPageTurningOperation.Jump) {\n return ESubmitType.Jump;\n }\n\n return ESubmitType.Forward;\n};\n\nconst getBasicIndex = (annotationStore: any, basicIndex: number) => {\n const { imgList, imgIndex } = annotationStore;\n const { dataSourceStep } = getStepConfig(annotationStore.stepList, annotationStore.step);\n let backwardResult = jsonParser(imgList[imgIndex - 1].result);\n const index = backwardResult[`step_${dataSourceStep}`]?.result?.length - 1;\n return index || basicIndex;\n};\n\nexport function UpdateToolInstance(toolInstance: ToolInstance): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE,\n payload: {\n toolInstance,\n },\n };\n}\n\nexport function UpdateImgList(imgList: IFileItem[]): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_IMG_LIST,\n payload: {\n imgList,\n },\n };\n}\n\nexport function UpdateAnnotationConfig(config: string): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG,\n payload: {\n config,\n },\n };\n}\n\nexport function SetTaskStepList({ stepList }: { stepList: IStepInfo[] }): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.SET_TASK_STEP_LIST,\n payload: {\n stepList,\n },\n };\n}\n\nexport function SetTaskConfig({\n stepList,\n step,\n}: {\n stepList: IStepInfo[];\n step: number;\n}): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.SET_TASK_CONFIG,\n payload: {\n stepList,\n step,\n },\n };\n}\n\nexport function UpdateOnSubmit(onSubmit: OnSubmit): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT,\n payload: {\n onSubmit,\n },\n };\n}\n\nexport function UpdateOnSave(onSave: OnSave): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ON_SAVE,\n payload: {\n onSave,\n },\n };\n}\n\nexport function UpdateOnPageChange(onPageChange: OnPageChange): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE,\n payload: {\n onPageChange,\n },\n };\n}\n\nexport function UpdateOnStepChange(onStepChange: OnStepChange): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE,\n payload: {\n onStepChange,\n },\n };\n}\n\nexport function UpdateGetFileData(getFileData: GetFileData): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA,\n payload: {\n getFileData,\n },\n };\n}\n\nexport function UpdatePageSize(pageSize: number): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE,\n payload: {\n pageSize,\n },\n };\n}\n\nexport function UpdateGetFileList(loadFileList: LoadFileList): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST,\n payload: {\n loadFileList,\n },\n };\n}\n\nexport function UpdateRotate(): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ROTATE,\n };\n}\n\nexport function UpdateValid(): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ANNOTATION_VALID,\n };\n}\n\nexport function UpdateSkipBeforePageTurning(\n skipBeforePageTurning: (pageTurning: Function) => {},\n): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.SKIP_BEFORE_PAGE_TURNING,\n payload: {\n skipBeforePageTurning,\n },\n };\n}\n\nexport function UpdateBeforeRotate(beforeRotate: () => {}): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_BEFORE_ROTATE,\n payload: {\n beforeRotate,\n },\n };\n}\n\nexport function CopyBackWordResult(): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT,\n };\n}\n\nexport function BatchUpdateTrackID({\n id,\n newID,\n rangeIndex,\n imgList,\n}: {\n id: number;\n newID: number;\n rangeIndex: [number, number];\n imgList: IFileItem[];\n}): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.BATCH_UPDATE_TRACK_ID,\n payload: {\n id,\n newID,\n rangeIndex,\n imgList,\n },\n };\n}\n\nexport function BatchUpdateResultByTrackID(\n id: number, // originData\n newData: Partial<IPointCloudBox>,\n rangeIndex: [number, number],\n): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.BATCH_UPDATE_RESULT_BY_TRACK_ID,\n payload: {\n id,\n newData,\n rangeIndex,\n },\n };\n}\n\n/**\n * 初始化任务数据\n * @param param0\n */\nexport function InitTaskData({\n onSubmit,\n onSave,\n onPageChange,\n onStepChange,\n getFileData,\n pageSize,\n loadFileList,\n step,\n stepList,\n skipBeforePageTurning,\n beforeRotate,\n}: any): any {\n const tasks: any[] = [];\n\n if (onSubmit) {\n tasks.push(UpdateOnSubmit(onSubmit));\n }\n if (onSave) {\n tasks.push(UpdateOnSave(onSave));\n }\n if (onPageChange) {\n tasks.push(UpdateOnPageChange(onPageChange));\n }\n\n if (onStepChange) {\n tasks.push(UpdateOnStepChange(onStepChange));\n }\n\n if (getFileData) {\n tasks.push(UpdateGetFileData(getFileData));\n }\n\n if (loadFileList) {\n tasks.push(UpdateGetFileList(loadFileList));\n }\n\n if (pageSize) {\n tasks.push(UpdatePageSize(pageSize));\n }\n\n if (skipBeforePageTurning) {\n tasks.push(UpdateSkipBeforePageTurning(skipBeforePageTurning));\n }\n\n if (beforeRotate) {\n tasks.push(UpdateBeforeRotate(beforeRotate));\n }\n\n tasks.push(SetTaskConfig({ stepList, step }));\n\n tasks.push({\n type: ANNOTATION_ACTIONS.CALC_STEP_PROGRESS,\n });\n\n tasks.push({\n type: ANNOTATION_ACTIONS.INIT_TOOL,\n });\n\n return (dispatch: any) => dispatchTasks(dispatch, tasks);\n}\n\n/**\n * 初始化任务数据\n * @param param0\n */\nexport function UpdateInjectFunc({\n onSubmit,\n onSave,\n onPageChange,\n onStepChange,\n getFileData,\n pageSize,\n loadFileList,\n stepList,\n beforeRotate,\n}: any): any {\n const tasks: any[] = [];\n\n if (onSubmit) {\n tasks.push(UpdateOnSubmit(onSubmit));\n }\n if (onSave) {\n tasks.push(UpdateOnSave(onSave));\n }\n if (onPageChange) {\n tasks.push(UpdateOnPageChange(onPageChange));\n }\n\n if (onStepChange) {\n tasks.push(UpdateOnStepChange(onStepChange));\n }\n\n if (getFileData) {\n tasks.push(UpdateGetFileData(getFileData));\n }\n\n if (loadFileList) {\n tasks.push(UpdateGetFileList(loadFileList));\n }\n\n if (pageSize) {\n tasks.push(UpdatePageSize(pageSize));\n }\n\n if (beforeRotate) {\n tasks.push(UpdateBeforeRotate(beforeRotate));\n }\n\n tasks.push(SetTaskStepList({ stepList }));\n\n return (dispatch: any) => dispatchTasks(dispatch, tasks);\n}\n\n/** 获取下一步的step */\nconst getNextStep = (step: number, stepList: any) => {\n const currentStepIndex = stepList?.findIndex((element: any) => element?.step === step);\n return stepList[currentStepIndex + 1]?.step;\n};\n\n/** 切换到下一步 */\nexport const ToNextStep = (pageNumber?: number) => (dispatch: any, getState: any) => {\n const { annotation } = getState();\n const { step, stepList } = annotation;\n const nextStep = getNextStep(step, stepList);\n return [dispatch(UpdateProcessingStep(nextStep, pageNumber))];\n};\n\n/**\n * 更新当前操作的步骤\n * @param {number} toStep\n */\nexport const UpdateProcessingStep =\n (toStep: number, index?: number) => (dispatch: any, getState: any) => {\n const { annotation } = getState();\n annotation?.onStepChange?.(toStep);\n const imgIndex = annotation?.imgIndex ?? 0;\n return [\n dispatch({ type: ANNOTATION_ACTIONS.SUBMIT_RESULT }),\n dispatch({\n type: ANNOTATION_ACTIONS.SUBMIT_FILE_DATA,\n payload: { submitType: ESubmitType.StepChanged },\n }),\n // ToSubmitFileData(ESubmitType.StepChanged),\n dispatch({ type: ANNOTATION_ACTIONS.SET_STEP, payload: { toStep } }),\n dispatch({ type: ANNOTATION_ACTIONS.CALC_STEP_PROGRESS }),\n // 切换步骤保持图片位置\n dispatch(LoadFileAndFileData(index ?? imgIndex, 0)),\n ];\n };\n\n/**\n * 提交当前的文件数据\n * @param submitType\n */\nexport const ToSubmitFileData = (submitType: ESubmitType) => (dispatch: any) =>\n [\n dispatch({ type: ANNOTATION_ACTIONS.SUBMIT_RESULT }),\n dispatch({ type: ANNOTATION_ACTIONS.SUBMIT_FILE_DATA, payload: { submitType } }),\n ];\n\n/**\n * 提交数据并且切换标注文件\n * @param dispatch\n * @param nextIndex\n * @param submitType\n * @param nextBasicIndex\n */\nconst SubmitAndChangeFileIndex = (\n dispatch: any,\n nextIndex: number,\n submitType: ESubmitType,\n nextBasicIndex?: number,\n) => [\n dispatch(ToSubmitFileData(submitType)),\n dispatch(LoadFileAndFileData(nextIndex, nextBasicIndex)),\n];\n\nconst ChangeBasicIndex = (dispatch: any, nextBasicIndex: number) => [\n dispatch({ type: ANNOTATION_ACTIONS.SUBMIT_RESULT }),\n dispatch({ type: ANNOTATION_ACTIONS.SET_BASIC_INDEX, payload: { basicIndex: nextBasicIndex } }),\n];\n\nconst ChangeTriggerEventAfterIndexChanged = (\n dispatch: any,\n triggerEventAfterIndexChanged: boolean,\n) => {\n dispatch({\n type: ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED,\n payload: {\n triggerEventAfterIndexChanged,\n },\n });\n};\n\n/** 向前翻页 */\nexport const PageBackward =\n (triggerEventAfterIndexChanged = false) =>\n (dispatch: any, getState: any) => {\n return DispatcherTurning(\n dispatch,\n getState,\n EPageTurningOperation.Backward,\n triggerEventAfterIndexChanged,\n );\n };\n\n/** 向后翻页 */\nexport const PageForward =\n (triggerEventAfterIndexChanged = false) =>\n (dispatch: any, getState: any) => {\n return DispatcherTurning(\n dispatch,\n getState,\n EPageTurningOperation.Forward,\n triggerEventAfterIndexChanged,\n );\n };\n\n/**\n * 跳到指定文件索引\n * @param toIndex\n */\nexport const PageJump =\n (toIndex: number, triggerEventAfterIndexChanged = false) =>\n (dispatch: any, getState: any) => {\n if (toIndex === getState().imgIndex) {\n return;\n }\n\n return DispatcherTurning(\n dispatch,\n getState,\n EPageTurningOperation.Jump,\n triggerEventAfterIndexChanged,\n toIndex,\n );\n };\n\n/**\n * 加载文件列表\n * @param dispatch\n * @param getState\n * @param nextIndex 需要加载的图片index\n * @param isInitial // 是否为初始化加载\n */\nexport const loadImgList = async (\n dispatch: any,\n getState: any,\n nextIndex: number,\n isInitial?: boolean,\n) => {\n const { loadFileList, imgList, pageSize } = getState().annotation;\n const page = Math.floor(nextIndex / pageSize);\n SetAnnotationLoading(dispatch, true);\n try {\n const res: any = await loadFileList(page, pageSize);\n SetAnnotationLoading(dispatch, false);\n if (!res?.fileList?.length || !res?.total) {\n throw new Error('fileList and total are required');\n }\n const newImgList = isInitial ? new Array(res.total) : [...imgList];\n newImgList.splice(page * pageSize, pageSize, ...res.fileList);\n dispatch({\n type: ANNOTATION_ACTIONS.UPDATE_IMG_LIST,\n payload: {\n imgList: newImgList,\n },\n });\n return true;\n } catch (err) {\n SetAnnotationLoading(dispatch, false);\n console.error(err);\n }\n};\n\n/**\n * 判断翻页还是切换依赖数据\n * @param dispatch\n * @param getState\n * @param pageTurningOperation\n * @param toIndex\n */\nexport const DispatcherTurning = async (\n dispatch: any,\n getState: any,\n pageTurningOperation: EPageTurningOperation,\n triggerEventAfterIndexChanged = false,\n toIndex?: number,\n) => {\n const annotationStore = getState().annotation;\n const { fileIndexChanged, fileIndex, basicIndexChanged, basicIndex } =\n PageOperator.getNextPageInfo(pageTurningOperation, annotationStore, toIndex);\n\n const submitType: ESubmitType = getSubmitByPageOperation(pageTurningOperation);\n\n ChangeTriggerEventAfterIndexChanged(dispatch, triggerEventAfterIndexChanged);\n\n // 翻页\n if (fileIndexChanged) {\n if (annotationStore.loading) {\n return;\n }\n // 加载图片列表\n if (!annotationStore.imgList[fileIndex]) {\n const isSuccess = await loadImgList(dispatch, getState, fileIndex);\n if (!isSuccess) {\n // 加载失败不往下执行\n return;\n }\n }\n\n annotationStore.onPageChange?.(fileIndex);\n const index =\n submitType === ESubmitType.Backward\n ? getBasicIndex(getState().annotation, basicIndex)\n : basicIndex;\n return SubmitAndChangeFileIndex(dispatch, fileIndex, submitType, index);\n }\n\n if (basicIndexChanged) {\n return ChangeBasicIndex(dispatch, basicIndex);\n }\n\n return dispatch(ToSubmitFileData(submitType));\n};\n\n/**\n * 保存当前页数据\n * */\nexport const ChangeSave = (dispatch: Function) => {\n dispatch(ToSubmitFileData(ESubmitType.Save));\n dispatch({ type: ANNOTATION_ACTIONS.SAVE_RESULT });\n};\n\nexport const SetAnnotationLoading = (dispatch: Function, loading: boolean) => {\n dispatch({\n type: ANNOTATION_ACTIONS.SET_LOADING,\n payload: {\n loading,\n },\n });\n};\n\nexport const SetPointCloudLoading = (dispatch: Function, loading: boolean) => {\n dispatch({\n type: ANNOTATION_ACTIONS.SET_LOADING,\n payload: {\n loading,\n },\n });\n};\n"],"names":["this"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,aAAA,GAAgB,CAAC,QAAe,EAAA,KAAA,KAAiB,MAAM,GAAI,CAAA,CAAC,SAAS,QAAS,CAAA,IAAA,CAAA,CAAA,CAAA;AAMpF,MAAM,wBAAA,GAA2B,CAAC,oBAAgD,KAAA;AAChF,EAAI,IAAA,oBAAA,KAAyB,sBAAsB,OAAS,EAAA;AAC1D,IAAA,OAAO,WAAY,CAAA,OAAA,CAAA;AAAA,GAAA;AAGrB,EAAI,IAAA,oBAAA,KAAyB,sBAAsB,QAAU,EAAA;AAC3D,IAAA,OAAO,WAAY,CAAA,QAAA,CAAA;AAAA,GAAA;AAGrB,EAAI,IAAA,oBAAA,KAAyB,sBAAsB,IAAM,EAAA;AACvD,IAAA,OAAO,WAAY,CAAA,IAAA,CAAA;AAAA,GAAA;AAGrB,EAAA,OAAO,WAAY,CAAA,OAAA,CAAA;AAAA,CAAA,CAAA;AAGrB,MAAM,aAAA,GAAgB,CAAC,eAAA,EAAsB,UAAuB,KAAA;AAzCpE,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA0CE,EAAM,MAAA,CAAE,SAAS,QAAa,CAAA,GAAA,eAAA,CAAA;AAC9B,EAAA,MAAM,CAAE,cAAA,CAAA,GAAmB,aAAc,CAAA,eAAA,CAAgB,UAAU,eAAgB,CAAA,IAAA,CAAA,CAAA;AACnF,EAAA,IAAI,cAAiB,GAAA,UAAA,CAAW,OAAQ,CAAA,QAAA,GAAW,CAAG,CAAA,CAAA,MAAA,CAAA,CAAA;AACtD,EAAA,MAAM,QAAQ,CAAe,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAA,CAAA,CAAA,KAAA,EAAQ,sBAAvB,IAA0C,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,KAA1C,mBAAkD,MAAS,IAAA,CAAA,CAAA;AACzE,EAAA,OAAO,KAAS,IAAA,UAAA,CAAA;AAAA,CAAA,CAAA;AAGX,SAAA,kBAAA,CAA4B,YAAmD,EAAA;AACpF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,oBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAuBC,SAAA,eAAA,CAAyB,CAAE,QAA8D,CAAA,EAAA;AAC9F,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,kBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKwB,SAAA,aAAA,CAAA;AAAA,EAC5B,QAAA;AAAA,EACA,IAAA;AAAA,CAIwB,EAAA;AACxB,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,eAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,MACA,IAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,cAAA,CAAwB,QAA2C,EAAA;AACxE,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,gBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,YAAA,CAAsB,MAAuC,EAAA;AAClE,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,cAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,MAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,kBAAA,CAA4B,YAAmD,EAAA;AACpF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,qBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,kBAAA,CAA4B,YAAmD,EAAA;AACpF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,qBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,iBAAA,CAA2B,WAAiD,EAAA;AACjF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,oBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,WAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,cAAA,CAAwB,QAAyC,EAAA;AACtE,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,gBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,iBAAA,CAA2B,YAAmD,EAAA;AACnF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,qBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKgD,SAAA,YAAA,GAAA;AACpD,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,aAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAUtB,SAAA,2BAAA,CACL,qBACuB,EAAA;AACvB,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,wBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,qBAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,kBAAA,CAA4B,YAA+C,EAAA;AAChF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,oBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKsD,SAAA,kBAAA,GAAA;AAC1D,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,oBAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAIM,SAAA,kBAAA,CAAA;AAAA,EACjC,EAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,CAMwB,EAAA;AACxB,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,qBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,EAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAMJ,SAAA,0BAAA,CAAA,EAAA,EACA,SACA,UACuB,EAAA;AACvB,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,+BAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,EAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AASuB,SAAA,YAAA,CAAA;AAAA,EAC3B,QAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,qBAAA;AAAA,EACA,YAAA;AAAA,CACW,EAAA;AACX,EAAA,MAAM,KAAe,GAAA,EAAA,CAAA;AAErB,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,CAAM,KAAK,cAAe,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAE5B,EAAA,IAAI,MAAQ,EAAA;AACV,IAAA,KAAA,CAAM,KAAK,YAAa,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAE1B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAA,IAAI,WAAa,EAAA;AACf,IAAA,KAAA,CAAM,KAAK,iBAAkB,CAAA,WAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG/B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,iBAAkB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG/B,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,CAAM,KAAK,cAAe,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG5B,EAAA,IAAI,qBAAuB,EAAA;AACzB,IAAA,KAAA,CAAM,KAAK,2BAA4B,CAAA,qBAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGzC,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAM,KAAA,CAAA,IAAA,CAAK,aAAc,CAAA,CAAE,QAAU,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAErC,EAAA,KAAA,CAAM,IAAK,CAAA;AAAA,IACT,MAAM,kBAAmB,CAAA,kBAAA;AAAA,GAAA,CAAA,CAAA;AAG3B,EAAA,KAAA,CAAM,IAAK,CAAA;AAAA,IACT,MAAM,kBAAmB,CAAA,SAAA;AAAA,GAAA,CAAA,CAAA;AAG3B,EAAO,OAAA,CAAC,QAAkB,KAAA,aAAA,CAAc,QAAU,EAAA,KAAA,CAAA,CAAA;AAAA,CAAA;AAOnB,SAAA,gBAAA,CAAA;AAAA,EAC/B,QAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,CACW,EAAA;AACX,EAAA,MAAM,KAAe,GAAA,EAAA,CAAA;AAErB,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,CAAM,KAAK,cAAe,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAE5B,EAAA,IAAI,MAAQ,EAAA;AACV,IAAA,KAAA,CAAM,KAAK,YAAa,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAE1B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAA,IAAI,WAAa,EAAA;AACf,IAAA,KAAA,CAAM,KAAK,iBAAkB,CAAA,WAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG/B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,iBAAkB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG/B,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,CAAM,KAAK,cAAe,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG5B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAM,KAAA,CAAA,IAAA,CAAK,gBAAgB,CAAE,QAAA,CAAA,CAAA,CAAA,CAAA;AAE7B,EAAO,OAAA,CAAC,QAAkB,KAAA,aAAA,CAAc,QAAU,EAAA,KAAA,CAAA,CAAA;AAAA,CAAA;AAIpD,MAAM,WAAA,GAAc,CAAC,IAAA,EAAc,QAAkB,KAAA;AAtWrD,EAAA,IAAA,EAAA,CAAA;AAuWE,EAAA,MAAM,mBAAmB,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,SAAA,CAAU,CAAC,OAAA,KAAiB,oCAAS,IAAS,MAAA,IAAA,CAAA,CAAA;AACjF,EAAO,OAAA,CAAA,EAAA,GAAA,QAAA,CAAS,gBAAmB,GAAA,CAAA,CAAA,KAA5B,IAAgC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAIlC,MAAM,UAAa,GAAA,CAAC,UAAwB,KAAA,CAAC,UAAe,QAAkB,KAAA;AACnF,EAAA,MAAM,CAAE,UAAe,CAAA,GAAA,QAAA,EAAA,CAAA;AACvB,EAAM,MAAA,CAAE,MAAM,QAAa,CAAA,GAAA,UAAA,CAAA;AAC3B,EAAM,MAAA,QAAA,GAAW,YAAY,IAAM,EAAA,QAAA,CAAA,CAAA;AACnC,EAAO,OAAA,CAAC,QAAS,CAAA,oBAAA,CAAqB,QAAU,EAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAO3C,MAAM,uBACX,CAAC,MAAA,EAAgB,KAAmB,KAAA,CAAC,UAAe,QAAkB,KAAA;AAxXxE,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAyXI,EAAA,MAAM,CAAE,UAAe,CAAA,GAAA,QAAA,EAAA,CAAA;AACvB,EAAA,CAAA,EAAA,GAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,iBAAZ,IAA2B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,UAAA,EAAA,MAAA,CAAA,CAAA;AAC3B,EAAM,MAAA,QAAA,GAAW,CAAY,EAAA,GAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAA,QAAA,KAAZ,IAAwB,GAAA,EAAA,GAAA,CAAA,CAAA;AACzC,EAAO,OAAA;AAAA,IACL,QAAA,CAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,aAAA,CAAA,CAAA;AAAA,IACpC,QAAS,CAAA;AAAA,MACP,MAAM,kBAAmB,CAAA,gBAAA;AAAA,MACzB,OAAA,EAAS,CAAE,UAAA,EAAY,WAAY,CAAA,WAAA,CAAA;AAAA,KAAA,CAAA;AAAA,IAGrC,SAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,QAAA,EAAU,SAAS,CAAE,MAAA,CAAA,CAAA,CAAA;AAAA,IACzD,QAAA,CAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,kBAAA,CAAA,CAAA;AAAA,IAEpC,QAAA,CAAS,mBAAoB,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,QAAU,EAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,EAAA;AAQ/C,MAAM,gBAAmB,GAAA,CAAC,UAA4B,KAAA,CAAC,QAC5D,KAAA;AAAA,EACE,QAAA,CAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,aAAA,CAAA,CAAA;AAAA,EACpC,SAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,gBAAA,EAAkB,SAAS,CAAE,UAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAUrE,MAAM,wBAA2B,GAAA,CAC/B,QACA,EAAA,SAAA,EACA,YACA,cACG,KAAA;AAAA,EACH,SAAS,gBAAiB,CAAA,UAAA,CAAA,CAAA;AAAA,EAC1B,QAAA,CAAS,oBAAoB,SAAW,EAAA,cAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAG1C,MAAM,gBAAA,GAAmB,CAAC,QAAA,EAAe,cAA2B,KAAA;AAAA,EAClE,QAAA,CAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,aAAA,CAAA,CAAA;AAAA,EACpC,SAAS,CAAE,IAAA,EAAM,mBAAmB,eAAiB,EAAA,OAAA,EAAS,CAAE,UAAY,EAAA,cAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAG9E,MAAM,mCAAA,GAAsC,CAC1C,QAAA,EACA,6BACG,KAAA;AACH,EAAS,QAAA,CAAA;AAAA,IACP,MAAM,kBAAmB,CAAA,qCAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,6BAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAMC,MAAM,eACX,CAAC,6BAAA,GAAgC,KACjC,KAAA,CAAC,UAAe,QAAkB,KAAA;AAChC,EAAA,OAAO,iBACL,CAAA,QAAA,EACA,QACA,EAAA,qBAAA,CAAsB,QACtB,EAAA,6BAAA,CAAA,CAAA;AAAA,EAAA;AAKC,MAAM,cACX,CAAC,6BAAA,GAAgC,KACjC,KAAA,CAAC,UAAe,QAAkB,KAAA;AAChC,EAAA,OAAO,iBACL,CAAA,QAAA,EACA,QACA,EAAA,qBAAA,CAAsB,OACtB,EAAA,6BAAA,CAAA,CAAA;AAAA,EAAA;AAQC,MAAM,WACX,CAAC,OAAA,EAAiB,gCAAgC,KAClD,KAAA,CAAC,UAAe,QAAkB,KAAA;AAChC,EAAI,IAAA,OAAA,KAAY,WAAW,QAAU,EAAA;AACnC,IAAA,OAAA;AAAA,GAAA;AAGF,EAAA,OAAO,iBACL,CAAA,QAAA,EACA,QACA,EAAA,qBAAA,CAAsB,MACtB,6BACA,EAAA,OAAA,CAAA,CAAA;AAAA,EAAA;AAWC,MAAM,WAAc,GAAA,CACzB,QACA,EAAA,QAAA,EACA,WACA,SACG,KAAA,OAAA,CAAAA,SAAA,EAAA,IAAA,EAAA,aAAA;AA9eL,EAAA,IAAA,EAAA,CAAA;AA+eE,EAAA,MAAM,CAAE,YAAA,EAAc,OAAS,EAAA,QAAA,CAAA,GAAa,QAAW,EAAA,CAAA,UAAA,CAAA;AACvD,EAAM,MAAA,IAAA,GAAO,IAAK,CAAA,KAAA,CAAM,SAAY,GAAA,QAAA,CAAA,CAAA;AACpC,EAAA,oBAAA,CAAqB,QAAU,EAAA,IAAA,CAAA,CAAA;AAC/B,EAAI,IAAA;AACF,IAAM,MAAA,GAAA,GAAW,MAAM,YAAA,CAAa,IAAM,EAAA,QAAA,CAAA,CAAA;AAC1C,IAAA,oBAAA,CAAqB,QAAU,EAAA,KAAA,CAAA,CAAA;AAC/B,IAAA,IAAI,EAAM,CAAA,EAAA,GAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,QAAA,KAAL,mBAAe,MAAU,CAAA,IAAA,6BAAM,KAAO,CAAA,EAAA;AACzC,MAAA,MAAM,IAAI,KAAM,CAAA,iCAAA,CAAA,CAAA;AAAA,KAAA;AAElB,IAAA,MAAM,aAAa,SAAY,GAAA,IAAI,MAAM,GAAI,CAAA,KAAA,CAAA,GAAS,CAAC,GAAG,OAAA,CAAA,CAAA;AAC1D,IAAA,UAAA,CAAW,MAAO,CAAA,IAAA,GAAO,QAAU,EAAA,QAAA,EAAU,GAAG,GAAI,CAAA,QAAA,CAAA,CAAA;AACpD,IAAS,QAAA,CAAA;AAAA,MACP,MAAM,kBAAmB,CAAA,eAAA;AAAA,MACzB,OAAS,EAAA;AAAA,QACP,OAAS,EAAA,UAAA;AAAA,OAAA;AAAA,KAAA,CAAA,CAAA;AAGb,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA,CAAA,OACA,GAAP,EAAA;AACA,IAAA,oBAAA,CAAqB,QAAU,EAAA,KAAA,CAAA,CAAA;AAC/B,IAAA,OAAA,CAAQ,KAAM,CAAA,GAAA,CAAA,CAAA;AAAA,GAAA;AAAA,CAAA,EAAA;AAWX,MAAM,oBAAoB,CAC/B,QAAA,EACA,UACA,oBACA,EAAA,6BAAA,GAAgC,OAChC,OACG,KAAA,OAAA,CAAAA,SAAA,EAAA,IAAA,EAAA,aAAA;AAphBL,EAAA,IAAA,EAAA,CAAA;AAqhBE,EAAA,MAAM,kBAAkB,QAAW,EAAA,CAAA,UAAA,CAAA;AACnC,EAAM,MAAA,CAAE,kBAAkB,SAAW,EAAA,iBAAA,EAAmB,cACtD,YAAa,CAAA,eAAA,CAAgB,sBAAsB,eAAiB,EAAA,OAAA,CAAA,CAAA;AAEtE,EAAA,MAAM,aAA0B,wBAAyB,CAAA,oBAAA,CAAA,CAAA;AAEzD,EAAA,mCAAA,CAAoC,QAAU,EAAA,6BAAA,CAAA,CAAA;AAG9C,EAAA,IAAI,gBAAkB,EAAA;AACpB,IAAA,IAAI,gBAAgB,OAAS,EAAA;AAC3B,MAAA,OAAA;AAAA,KAAA;AAGF,IAAI,IAAA,CAAC,eAAgB,CAAA,OAAA,CAAQ,SAAY,CAAA,EAAA;AACvC,MAAA,MAAM,SAAY,GAAA,MAAM,WAAY,CAAA,QAAA,EAAU,QAAU,EAAA,SAAA,CAAA,CAAA;AACxD,MAAA,IAAI,CAAC,SAAW,EAAA;AAEd,QAAA,OAAA;AAAA,OAAA;AAAA,KAAA;AAIJ,IAAA,CAAA,EAAA,GAAA,eAAA,CAAgB,iBAAhB,IAA+B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,eAAA,EAAA,SAAA,CAAA,CAAA;AAC/B,IAAA,MAAM,QACJ,UAAe,KAAA,WAAA,CAAY,WACvB,aAAc,CAAA,QAAA,EAAA,CAAW,YAAY,UACrC,CAAA,GAAA,UAAA,CAAA;AACN,IAAO,OAAA,wBAAA,CAAyB,QAAU,EAAA,SAAA,EAAW,UAAY,EAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAGnE,EAAA,IAAI,iBAAmB,EAAA;AACrB,IAAA,OAAO,iBAAiB,QAAU,EAAA,UAAA,CAAA,CAAA;AAAA,GAAA;AAGpC,EAAA,OAAO,SAAS,gBAAiB,CAAA,UAAA,CAAA,CAAA,CAAA;AAAA,CAAA,EAAA;AAMtB,MAAA,UAAA,GAAa,CAAC,QAAuB,KAAA;AAChD,EAAA,QAAA,CAAS,iBAAiB,WAAY,CAAA,IAAA,CAAA,CAAA,CAAA;AACtC,EAAS,QAAA,CAAA,CAAE,MAAM,kBAAmB,CAAA,WAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAGzB,MAAA,oBAAA,GAAuB,CAAC,QAAA,EAAoB,OAAqB,KAAA;AAC5E,EAAS,QAAA,CAAA;AAAA,IACP,MAAM,kBAAmB,CAAA,WAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAAA,EAAA;AAKO,MAAA,oBAAA,GAAuB,CAAC,QAAA,EAAoB,OAAqB,KAAA;AAC5E,EAAS,QAAA,CAAA;AAAA,IACP,MAAM,kBAAmB,CAAA,WAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"actionCreators.js","sources":["../../../src/store/annotation/actionCreators.ts"],"sourcesContent":["import { ANNOTATION_ACTIONS } from '@/store/Actions';\nimport { IStepInfo } from '@/types/step';\nimport {\n GetFileData,\n LoadFileList,\n IFileItem,\n OnPageChange,\n OnSave,\n OnStepChange,\n OnSubmit,\n} from '@/types/data';\nimport { AnnotationActionTypes, ToolInstance } from './types';\nimport { LoadFileAndFileData, getStepConfig } from './reducer';\nimport { ESubmitType } from '@/constant';\nimport { EPageTurningOperation } from '@/data/enums/AnnotationSize';\nimport PageOperator from '@/utils/PageOperator';\nimport { jsonParser } from '@/utils';\nimport { IPointCloudBox } from '@labelbee/lb-utils';\n\nconst dispatchTasks = (dispatch: any, tasks: any[]) => tasks.map((task) => dispatch(task));\n\n/**\n * @param {pageTurningOperation} pageTurningOperation 翻页操作\n * @returns {ESubmitType} 提数据交类型\n */\nconst getSubmitByPageOperation = (pageTurningOperation: EPageTurningOperation) => {\n if (pageTurningOperation === EPageTurningOperation.Forward) {\n return ESubmitType.Forward;\n }\n\n if (pageTurningOperation === EPageTurningOperation.Backward) {\n return ESubmitType.Backward;\n }\n\n if (pageTurningOperation === EPageTurningOperation.Jump) {\n return ESubmitType.Jump;\n }\n\n return ESubmitType.Forward;\n};\n\nconst getBasicIndex = (annotationStore: any, basicIndex: number) => {\n const { imgList, imgIndex } = annotationStore;\n const { dataSourceStep } = getStepConfig(annotationStore.stepList, annotationStore.step);\n let backwardResult = jsonParser(imgList[imgIndex - 1].result);\n const index = backwardResult[`step_${dataSourceStep}`]?.result?.length - 1;\n return index || basicIndex;\n};\n\nexport function UpdateToolInstance(toolInstance: ToolInstance): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE,\n payload: {\n toolInstance,\n },\n };\n}\n\nexport function UpdateImgList(imgList: IFileItem[]): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_IMG_LIST,\n payload: {\n imgList,\n },\n };\n}\n\nexport function UpdateAnnotationConfig(config: string): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG,\n payload: {\n config,\n },\n };\n}\n\nexport function SetTaskStepList({ stepList }: { stepList: IStepInfo[] }): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.SET_TASK_STEP_LIST,\n payload: {\n stepList,\n },\n };\n}\n\nexport function SetTaskConfig({\n stepList,\n step,\n}: {\n stepList: IStepInfo[];\n step: number;\n}): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.SET_TASK_CONFIG,\n payload: {\n stepList,\n step,\n },\n };\n}\n\nexport function UpdateOnSubmit(onSubmit: OnSubmit): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT,\n payload: {\n onSubmit,\n },\n };\n}\n\nexport function UpdateOnSave(onSave: OnSave): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ON_SAVE,\n payload: {\n onSave,\n },\n };\n}\n\nexport function UpdateOnPageChange(onPageChange: OnPageChange): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE,\n payload: {\n onPageChange,\n },\n };\n}\n\nexport function UpdateOnStepChange(onStepChange: OnStepChange): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE,\n payload: {\n onStepChange,\n },\n };\n}\n\nexport function UpdateGetFileData(getFileData: GetFileData): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA,\n payload: {\n getFileData,\n },\n };\n}\n\nexport function UpdatePageSize(pageSize: number): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE,\n payload: {\n pageSize,\n },\n };\n}\n\nexport function UpdateGetFileList(loadFileList: LoadFileList): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST,\n payload: {\n loadFileList,\n },\n };\n}\n\nexport function UpdateRotate(): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ROTATE,\n };\n}\n\nexport function UpdateValid(): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_ANNOTATION_VALID,\n };\n}\n\nexport function UpdateSkipBeforePageTurning(\n skipBeforePageTurning: (pageTurning: Function) => {},\n): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.SKIP_BEFORE_PAGE_TURNING,\n payload: {\n skipBeforePageTurning,\n },\n };\n}\n\nexport function UpdateBeforeRotate(beforeRotate: () => {}): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.UPDATE_BEFORE_ROTATE,\n payload: {\n beforeRotate,\n },\n };\n}\n\nexport function CopyBackWordResult(): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT,\n };\n}\n\nexport function BatchUpdateTrackID({\n id,\n newID,\n rangeIndex,\n imgList,\n}: {\n id: number;\n newID: number;\n rangeIndex: [number, number];\n imgList: IFileItem[];\n}): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.BATCH_UPDATE_TRACK_ID,\n payload: {\n id,\n newID,\n rangeIndex,\n imgList,\n },\n };\n}\n\nexport function BatchUpdateResultByTrackID(\n id: number, // originData\n newData: Partial<IPointCloudBox>,\n rangeIndex: [number, number],\n): AnnotationActionTypes {\n return {\n type: ANNOTATION_ACTIONS.BATCH_UPDATE_RESULT_BY_TRACK_ID,\n payload: {\n id,\n newData,\n rangeIndex,\n },\n };\n}\n\n/**\n * 初始化任务数据\n * @param param0\n */\nexport function InitTaskData({\n onSubmit,\n onSave,\n onPageChange,\n onStepChange,\n getFileData,\n pageSize,\n loadFileList,\n step,\n stepList,\n skipBeforePageTurning,\n beforeRotate,\n}: any): any {\n const tasks: any[] = [];\n\n if (onSubmit) {\n tasks.push(UpdateOnSubmit(onSubmit));\n }\n if (onSave) {\n tasks.push(UpdateOnSave(onSave));\n }\n if (onPageChange) {\n tasks.push(UpdateOnPageChange(onPageChange));\n }\n\n if (onStepChange) {\n tasks.push(UpdateOnStepChange(onStepChange));\n }\n\n if (getFileData) {\n tasks.push(UpdateGetFileData(getFileData));\n }\n\n if (loadFileList) {\n tasks.push(UpdateGetFileList(loadFileList));\n }\n\n if (pageSize) {\n tasks.push(UpdatePageSize(pageSize));\n }\n\n if (skipBeforePageTurning) {\n tasks.push(UpdateSkipBeforePageTurning(skipBeforePageTurning));\n }\n\n if (beforeRotate) {\n tasks.push(UpdateBeforeRotate(beforeRotate));\n }\n\n tasks.push(SetTaskConfig({ stepList, step }));\n\n tasks.push({\n type: ANNOTATION_ACTIONS.CALC_STEP_PROGRESS,\n });\n\n tasks.push({\n type: ANNOTATION_ACTIONS.INIT_TOOL,\n });\n\n return (dispatch: any) => dispatchTasks(dispatch, tasks);\n}\n\n/**\n * 初始化任务数据\n * @param param0\n */\nexport function UpdateInjectFunc({\n onSubmit,\n onSave,\n onPageChange,\n onStepChange,\n getFileData,\n pageSize,\n loadFileList,\n stepList,\n beforeRotate,\n}: any): any {\n const tasks: any[] = [];\n\n if (onSubmit) {\n tasks.push(UpdateOnSubmit(onSubmit));\n }\n if (onSave) {\n tasks.push(UpdateOnSave(onSave));\n }\n if (onPageChange) {\n tasks.push(UpdateOnPageChange(onPageChange));\n }\n\n if (onStepChange) {\n tasks.push(UpdateOnStepChange(onStepChange));\n }\n\n if (getFileData) {\n tasks.push(UpdateGetFileData(getFileData));\n }\n\n if (loadFileList) {\n tasks.push(UpdateGetFileList(loadFileList));\n }\n\n if (pageSize) {\n tasks.push(UpdatePageSize(pageSize));\n }\n\n if (beforeRotate) {\n tasks.push(UpdateBeforeRotate(beforeRotate));\n }\n\n tasks.push(SetTaskStepList({ stepList }));\n\n return (dispatch: any) => dispatchTasks(dispatch, tasks);\n}\n\n/** 获取下一步的step */\nconst getNextStep = (step: number, stepList: any) => {\n const currentStepIndex = stepList?.findIndex((element: any) => element?.step === step);\n return stepList[currentStepIndex + 1]?.step;\n};\n\n/** 切换到下一步 */\nexport const ToNextStep = (pageNumber?: number) => (dispatch: any, getState: any) => {\n const { annotation } = getState();\n const { step, stepList } = annotation;\n const nextStep = getNextStep(step, stepList);\n return [dispatch(UpdateProcessingStep(nextStep, pageNumber))];\n};\n\n/**\n * 更新当前操作的步骤\n * @param {number} toStep\n */\nexport const UpdateProcessingStep =\n (toStep: number, index?: number) => (dispatch: any, getState: any) => {\n const { annotation } = getState();\n annotation?.onStepChange?.(toStep);\n const imgIndex = annotation?.imgIndex ?? 0;\n return [\n dispatch({ type: ANNOTATION_ACTIONS.SUBMIT_RESULT }),\n dispatch({\n type: ANNOTATION_ACTIONS.SUBMIT_FILE_DATA,\n payload: { submitType: ESubmitType.StepChanged },\n }),\n // ToSubmitFileData(ESubmitType.StepChanged),\n dispatch({ type: ANNOTATION_ACTIONS.SET_STEP, payload: { toStep } }),\n dispatch({ type: ANNOTATION_ACTIONS.CALC_STEP_PROGRESS }),\n // 切换步骤保持图片位置\n dispatch(LoadFileAndFileData(index ?? imgIndex, 0)),\n ];\n };\n\n/**\n * 提交当前的文件数据\n * @param submitType\n */\nexport const ToSubmitFileData = (submitType: ESubmitType) => (dispatch: any) =>\n [\n dispatch({ type: ANNOTATION_ACTIONS.SUBMIT_RESULT }),\n dispatch({ type: ANNOTATION_ACTIONS.SUBMIT_FILE_DATA, payload: { submitType } }),\n ];\n\n/**\n * 提交数据并且切换标注文件\n * @param dispatch\n * @param nextIndex\n * @param submitType\n * @param nextBasicIndex\n */\nconst SubmitAndChangeFileIndex = (\n dispatch: any,\n nextIndex: number,\n submitType: ESubmitType,\n nextBasicIndex?: number,\n) => [\n dispatch(ToSubmitFileData(submitType)),\n dispatch(LoadFileAndFileData(nextIndex, nextBasicIndex)),\n];\n\nconst ChangeBasicIndex = (dispatch: any, nextBasicIndex: number) => [\n dispatch({ type: ANNOTATION_ACTIONS.SUBMIT_RESULT }),\n dispatch({ type: ANNOTATION_ACTIONS.SET_BASIC_INDEX, payload: { basicIndex: nextBasicIndex } }),\n];\n\nconst ChangeTriggerEventAfterIndexChanged = (\n dispatch: any,\n triggerEventAfterIndexChanged: boolean,\n) => {\n dispatch({\n type: ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED,\n payload: {\n triggerEventAfterIndexChanged,\n },\n });\n};\n\n/** 向前翻页 */\nexport const PageBackward =\n (triggerEventAfterIndexChanged = false) =>\n (dispatch: any, getState: any) => {\n return DispatcherTurning(\n dispatch,\n getState,\n EPageTurningOperation.Backward,\n triggerEventAfterIndexChanged,\n );\n };\n\n/** 向后翻页 */\nexport const PageForward =\n (triggerEventAfterIndexChanged = false) =>\n (dispatch: any, getState: any) => {\n return DispatcherTurning(\n dispatch,\n getState,\n EPageTurningOperation.Forward,\n triggerEventAfterIndexChanged,\n );\n };\n\n/**\n * 跳到指定文件索引\n * @param toIndex\n */\nexport const PageJump =\n (toIndex: number, triggerEventAfterIndexChanged = false) =>\n (dispatch: any, getState: any) => {\n if (toIndex === getState().imgIndex) {\n return;\n }\n\n return DispatcherTurning(\n dispatch,\n getState,\n EPageTurningOperation.Jump,\n triggerEventAfterIndexChanged,\n toIndex,\n );\n };\n\n/**\n * 加载文件列表\n * @param dispatch\n * @param getState\n * @param nextIndex 需要加载的图片index\n * @param isInitial // 是否为初始化加载\n */\nexport const loadImgList = async (\n dispatch: any,\n getState: any,\n nextIndex: number,\n isInitial?: boolean,\n) => {\n const { loadFileList, imgList, pageSize } = getState().annotation;\n const page = Math.floor(nextIndex / pageSize);\n SetAnnotationLoading(dispatch, true);\n try {\n const res: any = await loadFileList(page, pageSize);\n SetAnnotationLoading(dispatch, false);\n if (!res?.fileList?.length || !res?.total) {\n throw new Error('fileList and total are required');\n }\n const newImgList = isInitial ? new Array(res.total) : [...imgList];\n newImgList.splice(page * pageSize, pageSize, ...res.fileList);\n dispatch({\n type: ANNOTATION_ACTIONS.UPDATE_IMG_LIST,\n payload: {\n imgList: newImgList,\n },\n });\n return true;\n } catch (err) {\n SetAnnotationLoading(dispatch, false);\n console.error(err);\n }\n};\n\n/**\n * 判断翻页还是切换依赖数据\n * @param dispatch\n * @param getState\n * @param pageTurningOperation\n * @param toIndex\n */\nexport const DispatcherTurning = async (\n dispatch: any,\n getState: any,\n pageTurningOperation: EPageTurningOperation,\n triggerEventAfterIndexChanged = false,\n toIndex?: number,\n) => {\n const annotationStore = getState().annotation;\n const { fileIndexChanged, fileIndex, basicIndexChanged, basicIndex } =\n PageOperator.getNextPageInfo(pageTurningOperation, annotationStore, toIndex);\n\n const submitType: ESubmitType = getSubmitByPageOperation(pageTurningOperation);\n\n ChangeTriggerEventAfterIndexChanged(dispatch, triggerEventAfterIndexChanged);\n\n // 翻页\n if (fileIndexChanged) {\n if (annotationStore.loading) {\n return;\n }\n // 加载图片列表\n if (!annotationStore.imgList[fileIndex]) {\n const isSuccess = await loadImgList(dispatch, getState, fileIndex);\n if (!isSuccess) {\n // 加载失败不往下执行\n return;\n }\n }\n\n annotationStore.onPageChange?.(fileIndex);\n const index =\n submitType === ESubmitType.Backward\n ? getBasicIndex(getState().annotation, basicIndex)\n : basicIndex;\n return SubmitAndChangeFileIndex(dispatch, fileIndex, submitType, index);\n }\n\n if (basicIndexChanged) {\n return ChangeBasicIndex(dispatch, basicIndex);\n }\n\n return dispatch(ToSubmitFileData(submitType));\n};\n\n/**\n * 保存当前页数据\n * */\nexport const ChangeSave = (dispatch: Function) => {\n dispatch(ToSubmitFileData(ESubmitType.Save));\n dispatch({ type: ANNOTATION_ACTIONS.SAVE_RESULT });\n};\n\nexport const SetAnnotationLoading = (dispatch: Function, loading: boolean) => {\n dispatch({\n type: ANNOTATION_ACTIONS.SET_LOADING,\n payload: {\n loading,\n },\n });\n};\n\nexport const SetPointCloudLoading = (dispatch: Function, loading: boolean) => {\n dispatch({\n type: ANNOTATION_ACTIONS.SET_LOADING,\n payload: {\n loading,\n },\n });\n};\n\nexport const InitAnnotationState = (dispatch: Function) => {\n dispatch({\n type: ANNOTATION_ACTIONS.INIT_ALL_STATE,\n payload: {},\n });\n};\n"],"names":["this"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,aAAA,GAAgB,CAAC,QAAe,EAAA,KAAA,KAAiB,MAAM,GAAI,CAAA,CAAC,SAAS,QAAS,CAAA,IAAA,CAAA,CAAA,CAAA;AAMpF,MAAM,wBAAA,GAA2B,CAAC,oBAAgD,KAAA;AAChF,EAAI,IAAA,oBAAA,KAAyB,sBAAsB,OAAS,EAAA;AAC1D,IAAA,OAAO,WAAY,CAAA,OAAA,CAAA;AAAA,GAAA;AAGrB,EAAI,IAAA,oBAAA,KAAyB,sBAAsB,QAAU,EAAA;AAC3D,IAAA,OAAO,WAAY,CAAA,QAAA,CAAA;AAAA,GAAA;AAGrB,EAAI,IAAA,oBAAA,KAAyB,sBAAsB,IAAM,EAAA;AACvD,IAAA,OAAO,WAAY,CAAA,IAAA,CAAA;AAAA,GAAA;AAGrB,EAAA,OAAO,WAAY,CAAA,OAAA,CAAA;AAAA,CAAA,CAAA;AAGrB,MAAM,aAAA,GAAgB,CAAC,eAAA,EAAsB,UAAuB,KAAA;AAzCpE,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA0CE,EAAM,MAAA,CAAE,SAAS,QAAa,CAAA,GAAA,eAAA,CAAA;AAC9B,EAAA,MAAM,CAAE,cAAA,CAAA,GAAmB,aAAc,CAAA,eAAA,CAAgB,UAAU,eAAgB,CAAA,IAAA,CAAA,CAAA;AACnF,EAAA,IAAI,cAAiB,GAAA,UAAA,CAAW,OAAQ,CAAA,QAAA,GAAW,CAAG,CAAA,CAAA,MAAA,CAAA,CAAA;AACtD,EAAA,MAAM,QAAQ,CAAe,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAA,CAAA,CAAA,KAAA,EAAQ,sBAAvB,IAA0C,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,KAA1C,mBAAkD,MAAS,IAAA,CAAA,CAAA;AACzE,EAAA,OAAO,KAAS,IAAA,UAAA,CAAA;AAAA,CAAA,CAAA;AAGX,SAAA,kBAAA,CAA4B,YAAmD,EAAA;AACpF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,oBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAuBC,SAAA,eAAA,CAAyB,CAAE,QAA8D,CAAA,EAAA;AAC9F,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,kBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKwB,SAAA,aAAA,CAAA;AAAA,EAC5B,QAAA;AAAA,EACA,IAAA;AAAA,CAIwB,EAAA;AACxB,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,eAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,MACA,IAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,cAAA,CAAwB,QAA2C,EAAA;AACxE,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,gBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,YAAA,CAAsB,MAAuC,EAAA;AAClE,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,cAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,MAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,kBAAA,CAA4B,YAAmD,EAAA;AACpF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,qBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,kBAAA,CAA4B,YAAmD,EAAA;AACpF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,qBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,iBAAA,CAA2B,WAAiD,EAAA;AACjF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,oBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,WAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,cAAA,CAAwB,QAAyC,EAAA;AACtE,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,gBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,iBAAA,CAA2B,YAAmD,EAAA;AACnF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,qBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKgD,SAAA,YAAA,GAAA;AACpD,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,aAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAUtB,SAAA,2BAAA,CACL,qBACuB,EAAA;AACvB,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,wBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,qBAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKC,SAAA,kBAAA,CAA4B,YAA+C,EAAA;AAChF,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,oBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,YAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAKsD,SAAA,kBAAA,GAAA;AAC1D,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,oBAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAIM,SAAA,kBAAA,CAAA;AAAA,EACjC,EAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,CAMwB,EAAA;AACxB,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,qBAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,EAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAMJ,SAAA,0BAAA,CAAA,EAAA,EACA,SACA,UACuB,EAAA;AACvB,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,+BAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,EAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AASuB,SAAA,YAAA,CAAA;AAAA,EAC3B,QAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,qBAAA;AAAA,EACA,YAAA;AAAA,CACW,EAAA;AACX,EAAA,MAAM,KAAe,GAAA,EAAA,CAAA;AAErB,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,CAAM,KAAK,cAAe,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAE5B,EAAA,IAAI,MAAQ,EAAA;AACV,IAAA,KAAA,CAAM,KAAK,YAAa,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAE1B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAA,IAAI,WAAa,EAAA;AACf,IAAA,KAAA,CAAM,KAAK,iBAAkB,CAAA,WAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG/B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,iBAAkB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG/B,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,CAAM,KAAK,cAAe,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG5B,EAAA,IAAI,qBAAuB,EAAA;AACzB,IAAA,KAAA,CAAM,KAAK,2BAA4B,CAAA,qBAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGzC,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAM,KAAA,CAAA,IAAA,CAAK,aAAc,CAAA,CAAE,QAAU,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAErC,EAAA,KAAA,CAAM,IAAK,CAAA;AAAA,IACT,MAAM,kBAAmB,CAAA,kBAAA;AAAA,GAAA,CAAA,CAAA;AAG3B,EAAA,KAAA,CAAM,IAAK,CAAA;AAAA,IACT,MAAM,kBAAmB,CAAA,SAAA;AAAA,GAAA,CAAA,CAAA;AAG3B,EAAO,OAAA,CAAC,QAAkB,KAAA,aAAA,CAAc,QAAU,EAAA,KAAA,CAAA,CAAA;AAAA,CAAA;AAOnB,SAAA,gBAAA,CAAA;AAAA,EAC/B,QAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,CACW,EAAA;AACX,EAAA,MAAM,KAAe,GAAA,EAAA,CAAA;AAErB,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,CAAM,KAAK,cAAe,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAE5B,EAAA,IAAI,MAAQ,EAAA;AACV,IAAA,KAAA,CAAM,KAAK,YAAa,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAE1B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAA,IAAI,WAAa,EAAA;AACf,IAAA,KAAA,CAAM,KAAK,iBAAkB,CAAA,WAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG/B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,iBAAkB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG/B,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,CAAM,KAAK,cAAe,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAG5B,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,KAAA,CAAM,KAAK,kBAAmB,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGhC,EAAM,KAAA,CAAA,IAAA,CAAK,gBAAgB,CAAE,QAAA,CAAA,CAAA,CAAA,CAAA;AAE7B,EAAO,OAAA,CAAC,QAAkB,KAAA,aAAA,CAAc,QAAU,EAAA,KAAA,CAAA,CAAA;AAAA,CAAA;AAIpD,MAAM,WAAA,GAAc,CAAC,IAAA,EAAc,QAAkB,KAAA;AAtWrD,EAAA,IAAA,EAAA,CAAA;AAuWE,EAAA,MAAM,mBAAmB,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,SAAA,CAAU,CAAC,OAAA,KAAiB,oCAAS,IAAS,MAAA,IAAA,CAAA,CAAA;AACjF,EAAO,OAAA,CAAA,EAAA,GAAA,QAAA,CAAS,gBAAmB,GAAA,CAAA,CAAA,KAA5B,IAAgC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAIlC,MAAM,UAAa,GAAA,CAAC,UAAwB,KAAA,CAAC,UAAe,QAAkB,KAAA;AACnF,EAAA,MAAM,CAAE,UAAe,CAAA,GAAA,QAAA,EAAA,CAAA;AACvB,EAAM,MAAA,CAAE,MAAM,QAAa,CAAA,GAAA,UAAA,CAAA;AAC3B,EAAM,MAAA,QAAA,GAAW,YAAY,IAAM,EAAA,QAAA,CAAA,CAAA;AACnC,EAAO,OAAA,CAAC,QAAS,CAAA,oBAAA,CAAqB,QAAU,EAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAO3C,MAAM,uBACX,CAAC,MAAA,EAAgB,KAAmB,KAAA,CAAC,UAAe,QAAkB,KAAA;AAxXxE,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAyXI,EAAA,MAAM,CAAE,UAAe,CAAA,GAAA,QAAA,EAAA,CAAA;AACvB,EAAA,CAAA,EAAA,GAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,iBAAZ,IAA2B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,UAAA,EAAA,MAAA,CAAA,CAAA;AAC3B,EAAM,MAAA,QAAA,GAAW,CAAY,EAAA,GAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAA,QAAA,KAAZ,IAAwB,GAAA,EAAA,GAAA,CAAA,CAAA;AACzC,EAAO,OAAA;AAAA,IACL,QAAA,CAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,aAAA,CAAA,CAAA;AAAA,IACpC,QAAS,CAAA;AAAA,MACP,MAAM,kBAAmB,CAAA,gBAAA;AAAA,MACzB,OAAA,EAAS,CAAE,UAAA,EAAY,WAAY,CAAA,WAAA,CAAA;AAAA,KAAA,CAAA;AAAA,IAGrC,SAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,QAAA,EAAU,SAAS,CAAE,MAAA,CAAA,CAAA,CAAA;AAAA,IACzD,QAAA,CAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,kBAAA,CAAA,CAAA;AAAA,IAEpC,QAAA,CAAS,mBAAoB,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,QAAU,EAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,EAAA;AAQ/C,MAAM,gBAAmB,GAAA,CAAC,UAA4B,KAAA,CAAC,QAC5D,KAAA;AAAA,EACE,QAAA,CAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,aAAA,CAAA,CAAA;AAAA,EACpC,SAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,gBAAA,EAAkB,SAAS,CAAE,UAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAUrE,MAAM,wBAA2B,GAAA,CAC/B,QACA,EAAA,SAAA,EACA,YACA,cACG,KAAA;AAAA,EACH,SAAS,gBAAiB,CAAA,UAAA,CAAA,CAAA;AAAA,EAC1B,QAAA,CAAS,oBAAoB,SAAW,EAAA,cAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAG1C,MAAM,gBAAA,GAAmB,CAAC,QAAA,EAAe,cAA2B,KAAA;AAAA,EAClE,QAAA,CAAS,CAAE,IAAA,EAAM,kBAAmB,CAAA,aAAA,CAAA,CAAA;AAAA,EACpC,SAAS,CAAE,IAAA,EAAM,mBAAmB,eAAiB,EAAA,OAAA,EAAS,CAAE,UAAY,EAAA,cAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAG9E,MAAM,mCAAA,GAAsC,CAC1C,QAAA,EACA,6BACG,KAAA;AACH,EAAS,QAAA,CAAA;AAAA,IACP,MAAM,kBAAmB,CAAA,qCAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,6BAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAMC,MAAM,eACX,CAAC,6BAAA,GAAgC,KACjC,KAAA,CAAC,UAAe,QAAkB,KAAA;AAChC,EAAA,OAAO,iBACL,CAAA,QAAA,EACA,QACA,EAAA,qBAAA,CAAsB,QACtB,EAAA,6BAAA,CAAA,CAAA;AAAA,EAAA;AAKC,MAAM,cACX,CAAC,6BAAA,GAAgC,KACjC,KAAA,CAAC,UAAe,QAAkB,KAAA;AAChC,EAAA,OAAO,iBACL,CAAA,QAAA,EACA,QACA,EAAA,qBAAA,CAAsB,OACtB,EAAA,6BAAA,CAAA,CAAA;AAAA,EAAA;AAQC,MAAM,WACX,CAAC,OAAA,EAAiB,gCAAgC,KAClD,KAAA,CAAC,UAAe,QAAkB,KAAA;AAChC,EAAI,IAAA,OAAA,KAAY,WAAW,QAAU,EAAA;AACnC,IAAA,OAAA;AAAA,GAAA;AAGF,EAAA,OAAO,iBACL,CAAA,QAAA,EACA,QACA,EAAA,qBAAA,CAAsB,MACtB,6BACA,EAAA,OAAA,CAAA,CAAA;AAAA,EAAA;AAWC,MAAM,WAAc,GAAA,CACzB,QACA,EAAA,QAAA,EACA,WACA,SACG,KAAA,OAAA,CAAAA,SAAA,EAAA,IAAA,EAAA,aAAA;AA9eL,EAAA,IAAA,EAAA,CAAA;AA+eE,EAAA,MAAM,CAAE,YAAA,EAAc,OAAS,EAAA,QAAA,CAAA,GAAa,QAAW,EAAA,CAAA,UAAA,CAAA;AACvD,EAAM,MAAA,IAAA,GAAO,IAAK,CAAA,KAAA,CAAM,SAAY,GAAA,QAAA,CAAA,CAAA;AACpC,EAAA,oBAAA,CAAqB,QAAU,EAAA,IAAA,CAAA,CAAA;AAC/B,EAAI,IAAA;AACF,IAAM,MAAA,GAAA,GAAW,MAAM,YAAA,CAAa,IAAM,EAAA,QAAA,CAAA,CAAA;AAC1C,IAAA,oBAAA,CAAqB,QAAU,EAAA,KAAA,CAAA,CAAA;AAC/B,IAAA,IAAI,EAAM,CAAA,EAAA,GAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,QAAA,KAAL,mBAAe,MAAU,CAAA,IAAA,6BAAM,KAAO,CAAA,EAAA;AACzC,MAAA,MAAM,IAAI,KAAM,CAAA,iCAAA,CAAA,CAAA;AAAA,KAAA;AAElB,IAAA,MAAM,aAAa,SAAY,GAAA,IAAI,MAAM,GAAI,CAAA,KAAA,CAAA,GAAS,CAAC,GAAG,OAAA,CAAA,CAAA;AAC1D,IAAA,UAAA,CAAW,MAAO,CAAA,IAAA,GAAO,QAAU,EAAA,QAAA,EAAU,GAAG,GAAI,CAAA,QAAA,CAAA,CAAA;AACpD,IAAS,QAAA,CAAA;AAAA,MACP,MAAM,kBAAmB,CAAA,eAAA;AAAA,MACzB,OAAS,EAAA;AAAA,QACP,OAAS,EAAA,UAAA;AAAA,OAAA;AAAA,KAAA,CAAA,CAAA;AAGb,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA,CAAA,OACA,GAAP,EAAA;AACA,IAAA,oBAAA,CAAqB,QAAU,EAAA,KAAA,CAAA,CAAA;AAC/B,IAAA,OAAA,CAAQ,KAAM,CAAA,GAAA,CAAA,CAAA;AAAA,GAAA;AAAA,CAAA,EAAA;AAWX,MAAM,oBAAoB,CAC/B,QAAA,EACA,UACA,oBACA,EAAA,6BAAA,GAAgC,OAChC,OACG,KAAA,OAAA,CAAAA,SAAA,EAAA,IAAA,EAAA,aAAA;AAphBL,EAAA,IAAA,EAAA,CAAA;AAqhBE,EAAA,MAAM,kBAAkB,QAAW,EAAA,CAAA,UAAA,CAAA;AACnC,EAAM,MAAA,CAAE,kBAAkB,SAAW,EAAA,iBAAA,EAAmB,cACtD,YAAa,CAAA,eAAA,CAAgB,sBAAsB,eAAiB,EAAA,OAAA,CAAA,CAAA;AAEtE,EAAA,MAAM,aAA0B,wBAAyB,CAAA,oBAAA,CAAA,CAAA;AAEzD,EAAA,mCAAA,CAAoC,QAAU,EAAA,6BAAA,CAAA,CAAA;AAG9C,EAAA,IAAI,gBAAkB,EAAA;AACpB,IAAA,IAAI,gBAAgB,OAAS,EAAA;AAC3B,MAAA,OAAA;AAAA,KAAA;AAGF,IAAI,IAAA,CAAC,eAAgB,CAAA,OAAA,CAAQ,SAAY,CAAA,EAAA;AACvC,MAAA,MAAM,SAAY,GAAA,MAAM,WAAY,CAAA,QAAA,EAAU,QAAU,EAAA,SAAA,CAAA,CAAA;AACxD,MAAA,IAAI,CAAC,SAAW,EAAA;AAEd,QAAA,OAAA;AAAA,OAAA;AAAA,KAAA;AAIJ,IAAA,CAAA,EAAA,GAAA,eAAA,CAAgB,iBAAhB,IAA+B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,eAAA,EAAA,SAAA,CAAA,CAAA;AAC/B,IAAA,MAAM,QACJ,UAAe,KAAA,WAAA,CAAY,WACvB,aAAc,CAAA,QAAA,EAAA,CAAW,YAAY,UACrC,CAAA,GAAA,UAAA,CAAA;AACN,IAAO,OAAA,wBAAA,CAAyB,QAAU,EAAA,SAAA,EAAW,UAAY,EAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAGnE,EAAA,IAAI,iBAAmB,EAAA;AACrB,IAAA,OAAO,iBAAiB,QAAU,EAAA,UAAA,CAAA,CAAA;AAAA,GAAA;AAGpC,EAAA,OAAO,SAAS,gBAAiB,CAAA,UAAA,CAAA,CAAA,CAAA;AAAA,CAAA,EAAA;AAMtB,MAAA,UAAA,GAAa,CAAC,QAAuB,KAAA;AAChD,EAAA,QAAA,CAAS,iBAAiB,WAAY,CAAA,IAAA,CAAA,CAAA,CAAA;AACtC,EAAS,QAAA,CAAA,CAAE,MAAM,kBAAmB,CAAA,WAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAGzB,MAAA,oBAAA,GAAuB,CAAC,QAAA,EAAoB,OAAqB,KAAA;AAC5E,EAAS,QAAA,CAAA;AAAA,IACP,MAAM,kBAAmB,CAAA,WAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAAA,EAAA;AAKO,MAAA,oBAAA,GAAuB,CAAC,QAAA,EAAoB,OAAqB,KAAA;AAC5E,EAAS,QAAA,CAAA;AAAA,IACP,MAAM,kBAAmB,CAAA,WAAA;AAAA,IACzB,OAAS,EAAA;AAAA,MACP,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAAA,EAAA;AAKO,MAAA,mBAAA,GAAsB,CAAC,QAAuB,KAAA;AACzD,EAAS,QAAA,CAAA;AAAA,IACP,MAAM,kBAAmB,CAAA,cAAA;AAAA,IACzB,OAAS,EAAA,EAAA;AAAA,GAAA,CAAA,CAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getFormatSize as mt}from"../../components/customResizeHook/index.js";import{ESubmitType as W}from"../../constant/index.js";import It from"../../constant/styleString.js";import{ANNOTATION_ACTIONS as u}from"../Actions.js";import{jsonParser as H}from"../../utils/index.js";import $ from"../../utils/AnnotationDataUtils.js";import{ConfigUtils as Tt}from"../../utils/ConfigUtils.js";import{composeResultWithBasicImgInfo as nt,composeResult as ot}from"../../utils/data.js";import M from"../../utils/StepUtils.js";import lt from"../../utils/ToolUtils.js";import{MathUtils as st,CommonToolUtils as Lt,AnnotationEngine as Et,ImgUtils as St}from"@labelbee/lb-annotation";import{PointCloudUtils as it,i18n as B}from"@labelbee/lb-utils";import{Modal as rt}from"antd";import{message as ut}from"antd/es";import At from"lodash";import{SetAnnotationLoading as K}from"./actionCreators.js";var vt=Object.defineProperty,Dt=Object.defineProperties,yt=Object.getOwnPropertyDescriptors,at=Object.getOwnPropertySymbols,Pt=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,ct=(t,e,s)=>e in t?vt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,l=(t,e)=>{for(var s in e||(e={}))Pt.call(e,s)&&ct(t,s,e[s]);if(at)for(var s of at(e))Rt.call(e,s)&&ct(t,s,e[s]);return t},r=(t,e)=>Dt(t,yt(e)),dt=(t,e,s)=>new Promise((m,p)=>{var I=_=>{try{E(s.next(_))}catch(y){p(y)}},L=_=>{try{E(s.throw(_))}catch(y){p(y)}},E=_=>_.done?m(_.value):Promise.resolve(_.value).then(I,L);E((s=s.apply(t,e)).next())});const h=(t,e)=>t.find(s=>s.step===e),Ot={annotationEngine:null,toolInstance:null,imgList:[],config:"{}",imgIndex:-1,basicIndex:0,imgPageSize:1,step:1,stepList:[],imgNode:new Image,basicResultList:[],resultList:[],stepProgress:0,loading:!1,triggerEventAfterIndexChanged:!1,pointCloudLoading:!1},Ct=t=>{const{imgList:e,imgPageSize:s}=t;return Math.ceil(e.length/s)},pt=(t,e)=>t.reduce((s,m)=>{if(m){const p=m.result;if(H(p)[`step_${e}`])return s+1}return s},0)/t.length,bt=(t,e)=>{const{step:s,stepList:m}=t,p=M.getCurrentStepInfo(s,m),I=Tt.jsonParser(p.config);if(lt.isVideoTool(p==null?void 0:p.tool)||lt.isPointCloudTool(p==null?void 0:p.tool))return;const L=document.getElementById("toolContainer");if(!L)throw"Not exist dom named id-toolContainer";const E=mt({width:window.innerWidth,height:window.innerHeight}),_=new Et({container:L,toolName:p.tool,size:E,imgNode:e,config:I,style:JSON.parse(It)});return{toolInstance:_==null?void 0:_.toolInstance,annotationEngine:_}},ht=(t,e)=>(s,m)=>dt(void 0,null,function*(){const{stepList:p,step:I}=m().annotation,L=M.currentToolIsVideo(I,p),E=M.currentToolIsPointCloud(I,p);if(K(s,!0),yield s(Nt(t)),L||E){s(Ut(t));return}s(Bt(t,e))}),Nt=t=>(e,s)=>dt(void 0,null,function*(){const{getFileData:m,imgList:p}=s().annotation;if(m){const I=yield m(p[t],t);e({type:u.SET_FILE_DATA,payload:{fileData:I,index:t}})}}),Ut=t=>e=>{K(e,!1),e({type:u.LOAD_FILE_DATA,payload:{nextIndex:t}})},Bt=(t,e)=>(s,m)=>{var p;const{toolInstance:I,imgList:L}=m().annotation,E=(p=L==null?void 0:L[t])==null?void 0:p.url;St.load(E).then(_=>{K(s,!1),s({type:u.LOAD_FILE_DATA,payload:{imgNode:_,nextIndex:t,nextBasicIndex:e}})}).catch(()=>{K(s,!1),I==null||I.setErrorImg(),s({type:u.LOAD_FILE_DATA,payload:{nextIndex:t,nextBasicIndex:e}})})},wt=({toolInstance:t,imgList:e,imgIndex:s,stepList:m,step:p=1})=>{var I,L,E,_;const y=((I=e[s])==null?void 0:I.result)||"",[w,x,F]=(L=t==null?void 0:t.exportData())!=null?L:[],j=(_=(E=t==null?void 0:t.exportCustomData)==null?void 0:E.call(t))!=null?_:{},G=nt(y,x),V=ot(G,{step:p,stepList:m},{rect:w},j);return e.map((N,k)=>k===s?l(r(l({},N),{result:V}),F):l({},N))},xt=(t=Ot,e)=>{var s,m,p,I,L,E,_,y,w,x,F,j,G,V,N,k,X,Y,q,J,Z,Q;switch(e.type){case u.UPDATE_TOOL_INSTANCE:return r(l({},t),{toolInstance:e.payload.toolInstance});case u.UPDATE_IMG_LIST:return r(l({},t),{imgList:e.payload.imgList});case u.CALC_STEP_PROGRESS:{const{imgList:n,step:o}=t,i=pt(n,o);return r(l({},t),{stepProgress:i})}case u.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:o,step:i,stepList:a,toolInstance:d,onSubmit:c,resultList:f}=t;if(!d||!n[o])return t;const g=((s=n[o])==null?void 0:s.result)||"",[,T,v]=(m=d==null?void 0:d.exportData())!=null?m:[],R=(I=(p=d==null?void 0:d.exportCustomData)==null?void 0:p.call(d))!=null?I:{},D=nt(g,T),O=ot(D,{step:i,stepList:a},{rect:f},R),S=t.imgList.map((P,A)=>{if(A===o){const U=$.dataCorrection(O,g,i,a);return l(r(l({},P),{result:U}),v)}return P});if(((L=e.payload)==null?void 0:L.submitType)===W.SyncImgList)return r(l({},t),{imgList:S});c&&c([S[o]],(E=e.payload)==null?void 0:E.submitType,o,S);const C=pt(S,i);return r(l({},t),{stepProgress:C,imgList:S})}case u.SAVE_RESULT:{const{imgList:n,imgIndex:o,onSave:i}=t;return i==null||i(n[o],o,n),l({},t)}case u.SUBMIT_RESULT:{const{imgList:n,basicIndex:o,resultList:i,toolInstance:a,basicResultList:d}=t;if(!a)return t;const[c]=(_=a==null?void 0:a.exportData())!=null?_:[];let f=c;if((d==null?void 0:d.length)>0){const g=(y=d[o])==null?void 0:y.id,T=c.map(v=>r(l({},v),{sourceID:g}));f=At.cloneDeep(i).filter(v=>v.sourceID!==g),f.push(...T)}return r(l({},t),{resultList:f,imgList:n})}case u.SET_BASIC_INDEX:{const{toolInstance:n,step:o,imgList:i,imgIndex:a,stepList:d,annotationEngine:c,resultList:f,basicResultList:g}=t;if(!n||!c)return t;const T=e.payload.basicIndex,v=(w=g[T])==null?void 0:w.id,R=H((x=i[a])==null?void 0:x.result),D=(f||[]).filter(U=>U.sourceID===v),O=h(d,o),{dataSourceStep:S,tool:C}=O,P=h(d,S);let A=[];return S&&C&&(A=(F=R[`step_${S}`])==null?void 0:F.result,(A==null?void 0:A.length)>0?(c==null||c.setBasicInfo(P.tool,A[T]),c==null||c.launchOperation()):(c==null||c.setBasicInfo(P.tool),c==null||c.forbidOperation(),ut.info(B.t("NoDependency")))),n==null||n.setResult(D),n==null||n.history.initRecord(D,!0),r(l({},t),{basicIndex:T})}case u.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED:{const{triggerEventAfterIndexChanged:n}=e.payload;return r(l({},t),{triggerEventAfterIndexChanged:!!n})}case u.LOAD_FILE_DATA:{const{imgList:n,step:o,toolInstance:i,annotationEngine:a,stepList:d}=t;if(!i)return r(l({},t),{imgIndex:e.payload.nextIndex});const c=M.getCurrentStepInfo(o,d),{nextIndex:f,imgNode:g,nextBasicIndex:T,imgError:v}=e.payload,R=T!=null?T:0,D=H((j=n[f])==null?void 0:j.result),O=D[`step_${c.step}`],S=!O,C={rotate:(G=D.rotate)!=null?G:0,valid:(V=D.valid)!=null?V:!0};g&&v!==!0?a==null||a.setImgNode(g,C):i==null||i.setValid(C.valid);const P=h(d,c.step),{dataSourceStep:A,tool:U}=P,tt=h(d,A),et=A&&U,b=(k=(N=D[`step_${A}`])==null?void 0:N.result)!=null?k:[],z=$.getInitialResultList(O==null?void 0:O.result,i,P,b,S);if(a==null||a.launchOperation(),et&&((b==null?void 0:b.length)>0?a==null||a.setBasicInfo(tt.tool,b[R]):(a==null||a.setBasicInfo(tt.tool),a==null||a.forbidOperation(),ut.info(B.t("NoDependency")))),c.tool!=="check"){const gt=(Y=(X=b[R])==null?void 0:X.id)!=null?Y:"",_t=et?z.filter(ft=>Lt.isSameSourceID(ft.sourceID,gt)):z;i==null||i.history.initRecord(z,!0),i==null||i.setResult(_t)}return r(l({},t),{imgIndex:f,basicIndex:R,basicResultList:b,resultList:z})}case u.UPDATE_ANNOTATION_CONFIG:return r(l({},t),{config:(q=e.payload.config)!=null?q:"{}"});case u.SET_TASK_STEP_LIST:{const{stepList:n}=e.payload;return r(l({},t),{stepList:n})}case u.SET_TASK_CONFIG:{const{stepList:n,step:o}=e.payload;return r(l({},t),{stepList:n,step:o})}case u.INIT_TOOL:{const{imgNode:n}=t,o=bt(t,n);if(o){const{toolInstance:i,annotationEngine:a}=o;return r(l({},t),{toolInstance:i,annotationEngine:a})}return l({},t)}case u.SET_TOOL:{const n=(J=e.payload)==null?void 0:J.instance;return n?r(l({},t),{toolInstance:n}):l({},t)}case u.UPDATE_ON_SUBMIT:return r(l({},t),{onSubmit:e.payload.onSubmit});case u.UPDATE_ON_SAVE:return r(l({},t),{onSave:e.payload.onSave});case u.UPDATE_ON_PAGE_CHANGE:return r(l({},t),{onPageChange:e.payload.onPageChange});case u.UPDATE_ON_STEP_CHANGE:return r(l({},t),{onStepChange:e.payload.onStepChange});case u.UPDATE_GET_FILE_DATA:return r(l({},t),{getFileData:e.payload.getFileData});case u.UPDATE_PAGE_SIZE:return r(l({},t),{pageSize:e.payload.pageSize});case u.UPDATE_LOAD_FILE_LIST:return r(l({},t),{loadFileList:e.payload.loadFileList});case u.UPDATE_BEFORE_ROTATE:return r(l({},t),{beforeRotate:e.payload.beforeRotate});case u.SKIP_BEFORE_PAGE_TURNING:return r(l({},t),{skipBeforePageTurning:e.payload.skipBeforePageTurning});case u.SET_FILE_DATA:{const{fileData:n,index:o}=e.payload,{imgList:i}=t,a=[...i];return a[o]=l(l({},a[o]),n),r(l({},t),{imgList:a})}case u.UPDATE_ROTATE:{const{toolInstance:n,beforeRotate:o}=t;return o&&o()===!1||n==null||n.updateRotate(),t}case u.UPDATE_ANNOTATION_VALID:{const{toolInstance:n}=t,o=(Z=n==null?void 0:n.valid)!=null?Z:!0;return rt.destroyAll(),rt.confirm({content:B.t(o?"updateValidFromValidToInValid":"updateValidFromInValidToValid"),onOk:()=>{n==null||n.setValid(!o)},okText:B.t("Confirm"),cancelText:B.t("Cancel")}),t}case u.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:o,imgList:i,step:a}=t;if(!n)return t;if(o===0||o>=i.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),t;const d=i[o-1].result;if(!d)return t;const c=$.copyResultChange(d,a,(Q=i[o].result)!=null?Q:"");i[o]=r(l({},i[o]),{result:c});const g=H(c)[`step_${a}`],T=(g==null?void 0:g.result)||[];return n==null||n.setResult(T),n==null||n.history.pushHistory(T),r(l({},t),{imgList:[...i]})}case u.SET_STEP:{const{stepList:n,annotationEngine:o}=t,{toStep:i}=e.payload;if(!o)return t;const a=h(n,i);return o==null||o.setToolName(a.tool,a.config),r(l({},t),{step:i,toolInstance:o==null?void 0:o.toolInstance})}case u.SET_LOADING:{const{loading:n}=e.payload;return r(l({},t),{loading:!!n})}case u.SET_POINT_CLOUD_LOADING:{const{pointCloudLoading:n}=e.payload;return r(l({},t),{pointCloudLoading:!!n})}case u.BATCH_UPDATE_TRACK_ID:{const{id:n,newID:o,rangeIndex:i,imgList:a}=e.payload,{imgIndex:d,onSubmit:c}=t,f=a.map((g,T)=>st.isInRange(T,i)?r(l({},g),{result:it.batchUpdateTrackID({id:n,newID:o,result:g.result})}):g);return c&&c([f[d]],W.BatchUpdateTrackID,d,f),r(l({},t),{imgList:f})}case u.BATCH_UPDATE_RESULT_BY_TRACK_ID:{const{id:n,newData:o,rangeIndex:i}=e.payload,{imgList:a,imgIndex:d,onSubmit:c}=t,f=a.map((g,T)=>st.isInRange(T,i)?r(l({},g),{result:it.batchUpdateResultByTrackID({id:n,newData:o,result:g.result})}):g);return c&&c([f[d]],W.BatchUpdateTrackID,d,f),r(l({},t),{imgList:f})}default:return t}};export{ht as LoadFileAndFileData,xt as annotationReducer,wt as composeResultByToolInstance,h as getStepConfig,Ct as getTotalPage};
|
|
1
|
+
import{getFormatSize as It}from"../../components/customResizeHook/index.js";import{ESubmitType as W}from"../../constant/index.js";import Tt from"../../constant/styleString.js";import{ANNOTATION_ACTIONS as r}from"../Actions.js";import{jsonParser as H}from"../../utils/index.js";import $ from"../../utils/AnnotationDataUtils.js";import{ConfigUtils as Lt}from"../../utils/ConfigUtils.js";import{composeResultWithBasicImgInfo as nt,composeResult as ot}from"../../utils/data.js";import M from"../../utils/StepUtils.js";import lt from"../../utils/ToolUtils.js";import{MathUtils as st,CommonToolUtils as Et,AnnotationEngine as St,ImgUtils as At}from"@labelbee/lb-annotation";import{PointCloudUtils as it,i18n as B}from"@labelbee/lb-utils";import{Modal as rt}from"antd";import{message as ut}from"antd/es";import vt from"lodash";import{SetAnnotationLoading as K}from"./actionCreators.js";var Dt=Object.defineProperty,yt=Object.defineProperties,Pt=Object.getOwnPropertyDescriptors,at=Object.getOwnPropertySymbols,Rt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable,ct=(t,e,s)=>e in t?Dt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,o=(t,e)=>{for(var s in e||(e={}))Rt.call(e,s)&&ct(t,s,e[s]);if(at)for(var s of at(e))Ot.call(e,s)&&ct(t,s,e[s]);return t},u=(t,e)=>yt(t,Pt(e)),dt=(t,e,s)=>new Promise((m,p)=>{var I=_=>{try{E(s.next(_))}catch(y){p(y)}},L=_=>{try{E(s.throw(_))}catch(y){p(y)}},E=_=>_.done?m(_.value):Promise.resolve(_.value).then(I,L);E((s=s.apply(t,e)).next())});const h=(t,e)=>t.find(s=>s.step===e),pt={annotationEngine:null,toolInstance:null,imgList:[],config:"{}",imgIndex:-1,basicIndex:0,imgPageSize:1,step:1,stepList:[],imgNode:new Image,basicResultList:[],resultList:[],stepProgress:0,loading:!1,triggerEventAfterIndexChanged:!1,pointCloudLoading:!1},Ct=t=>{const{imgList:e,imgPageSize:s}=t;return Math.ceil(e.length/s)},gt=(t,e)=>t.reduce((s,m)=>{if(m){const p=m.result;if(H(p)[`step_${e}`])return s+1}return s},0)/t.length,bt=(t,e)=>{const{step:s,stepList:m}=t,p=M.getCurrentStepInfo(s,m),I=Lt.jsonParser(p.config);if(lt.isVideoTool(p==null?void 0:p.tool)||lt.isPointCloudTool(p==null?void 0:p.tool))return;const L=document.getElementById("toolContainer");if(!L)throw"Not exist dom named id-toolContainer";const E=It({width:window.innerWidth,height:window.innerHeight}),_=new St({container:L,toolName:p.tool,size:E,imgNode:e,config:I,style:JSON.parse(Tt)});return{toolInstance:_==null?void 0:_.toolInstance,annotationEngine:_}},ht=(t,e)=>(s,m)=>dt(void 0,null,function*(){const{stepList:p,step:I}=m().annotation,L=M.currentToolIsVideo(I,p),E=M.currentToolIsPointCloud(I,p);if(K(s,!0),yield s(Nt(t)),L||E){s(Ut(t));return}s(Bt(t,e))}),Nt=t=>(e,s)=>dt(void 0,null,function*(){const{getFileData:m,imgList:p}=s().annotation;if(m){const I=yield m(p[t],t);e({type:r.SET_FILE_DATA,payload:{fileData:I,index:t}})}}),Ut=t=>e=>{K(e,!1),e({type:r.LOAD_FILE_DATA,payload:{nextIndex:t}})},Bt=(t,e)=>(s,m)=>{var p;const{toolInstance:I,imgList:L}=m().annotation,E=(p=L==null?void 0:L[t])==null?void 0:p.url;At.load(E).then(_=>{K(s,!1),s({type:r.LOAD_FILE_DATA,payload:{imgNode:_,nextIndex:t,nextBasicIndex:e}})}).catch(()=>{K(s,!1),I==null||I.setErrorImg(),s({type:r.LOAD_FILE_DATA,payload:{nextIndex:t,nextBasicIndex:e}})})},wt=({toolInstance:t,imgList:e,imgIndex:s,stepList:m,step:p=1})=>{var I,L,E,_;const y=((I=e[s])==null?void 0:I.result)||"",[w,x,F]=(L=t==null?void 0:t.exportData())!=null?L:[],j=(_=(E=t==null?void 0:t.exportCustomData)==null?void 0:E.call(t))!=null?_:{},G=nt(y,x),V=ot(G,{step:p,stepList:m},{rect:w},j);return e.map((N,k)=>k===s?o(u(o({},N),{result:V}),F):o({},N))},xt=(t=o({},pt),e)=>{var s,m,p,I,L,E,_,y,w,x,F,j,G,V,N,k,X,Y,q,J,Z,Q;switch(e.type){case r.INIT_ALL_STATE:return o(o({},t),pt);case r.UPDATE_TOOL_INSTANCE:return u(o({},t),{toolInstance:e.payload.toolInstance});case r.UPDATE_IMG_LIST:return u(o({},t),{imgList:e.payload.imgList});case r.CALC_STEP_PROGRESS:{const{imgList:n,step:l}=t,i=gt(n,l);return u(o({},t),{stepProgress:i})}case r.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:l,step:i,stepList:a,toolInstance:d,onSubmit:c,resultList:f}=t;if(!d||!n[l])return t;const g=((s=n[l])==null?void 0:s.result)||"",[,T,v]=(m=d==null?void 0:d.exportData())!=null?m:[],R=(I=(p=d==null?void 0:d.exportCustomData)==null?void 0:p.call(d))!=null?I:{},D=nt(g,T),O=ot(D,{step:i,stepList:a},{rect:f},R),S=t.imgList.map((P,A)=>{if(A===l){const U=$.dataCorrection(O,g,i,a);return o(u(o({},P),{result:U}),v)}return P});if(((L=e.payload)==null?void 0:L.submitType)===W.SyncImgList)return u(o({},t),{imgList:S});c&&c([S[l]],(E=e.payload)==null?void 0:E.submitType,l,S);const C=gt(S,i);return u(o({},t),{stepProgress:C,imgList:S})}case r.SAVE_RESULT:{const{imgList:n,imgIndex:l,onSave:i}=t;return i==null||i(n[l],l,n),o({},t)}case r.SUBMIT_RESULT:{const{imgList:n,basicIndex:l,resultList:i,toolInstance:a,basicResultList:d}=t;if(!a)return t;const[c]=(_=a==null?void 0:a.exportData())!=null?_:[];let f=c;if((d==null?void 0:d.length)>0){const g=(y=d[l])==null?void 0:y.id,T=c.map(v=>u(o({},v),{sourceID:g}));f=vt.cloneDeep(i).filter(v=>v.sourceID!==g),f.push(...T)}return u(o({},t),{resultList:f,imgList:n})}case r.SET_BASIC_INDEX:{const{toolInstance:n,step:l,imgList:i,imgIndex:a,stepList:d,annotationEngine:c,resultList:f,basicResultList:g}=t;if(!n||!c)return t;const T=e.payload.basicIndex,v=(w=g[T])==null?void 0:w.id,R=H((x=i[a])==null?void 0:x.result),D=(f||[]).filter(U=>U.sourceID===v),O=h(d,l),{dataSourceStep:S,tool:C}=O,P=h(d,S);let A=[];return S&&C&&(A=(F=R[`step_${S}`])==null?void 0:F.result,(A==null?void 0:A.length)>0?(c==null||c.setBasicInfo(P.tool,A[T]),c==null||c.launchOperation()):(c==null||c.setBasicInfo(P.tool),c==null||c.forbidOperation(),ut.info(B.t("NoDependency")))),n==null||n.setResult(D),n==null||n.history.initRecord(D,!0),u(o({},t),{basicIndex:T})}case r.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED:{const{triggerEventAfterIndexChanged:n}=e.payload;return u(o({},t),{triggerEventAfterIndexChanged:!!n})}case r.LOAD_FILE_DATA:{const{imgList:n,step:l,toolInstance:i,annotationEngine:a,stepList:d}=t;if(!i)return u(o({},t),{imgIndex:e.payload.nextIndex});const c=M.getCurrentStepInfo(l,d),{nextIndex:f,imgNode:g,nextBasicIndex:T,imgError:v}=e.payload,R=T!=null?T:0,D=H((j=n[f])==null?void 0:j.result),O=D[`step_${c.step}`],S=!O,C={rotate:(G=D.rotate)!=null?G:0,valid:(V=D.valid)!=null?V:!0};g&&v!==!0?a==null||a.setImgNode(g,C):i==null||i.setValid(C.valid);const P=h(d,c.step),{dataSourceStep:A,tool:U}=P,tt=h(d,A),et=A&&U,b=(k=(N=D[`step_${A}`])==null?void 0:N.result)!=null?k:[],z=$.getInitialResultList(O==null?void 0:O.result,i,P,b,S);if(a==null||a.launchOperation(),et&&((b==null?void 0:b.length)>0?a==null||a.setBasicInfo(tt.tool,b[R]):(a==null||a.setBasicInfo(tt.tool),a==null||a.forbidOperation(),ut.info(B.t("NoDependency")))),c.tool!=="check"){const _t=(Y=(X=b[R])==null?void 0:X.id)!=null?Y:"",ft=et?z.filter(mt=>Et.isSameSourceID(mt.sourceID,_t)):z;i==null||i.history.initRecord(z,!0),i==null||i.setResult(ft)}return u(o({},t),{imgIndex:f,basicIndex:R,basicResultList:b,resultList:z})}case r.UPDATE_ANNOTATION_CONFIG:return u(o({},t),{config:(q=e.payload.config)!=null?q:"{}"});case r.SET_TASK_STEP_LIST:{const{stepList:n}=e.payload;return u(o({},t),{stepList:n})}case r.SET_TASK_CONFIG:{const{stepList:n,step:l}=e.payload;return u(o({},t),{stepList:n,step:l})}case r.INIT_TOOL:{const{imgNode:n}=t,l=bt(t,n);if(l){const{toolInstance:i,annotationEngine:a}=l;return u(o({},t),{toolInstance:i,annotationEngine:a})}return o({},t)}case r.SET_TOOL:{const n=(J=e.payload)==null?void 0:J.instance;return n?u(o({},t),{toolInstance:n}):o({},t)}case r.UPDATE_ON_SUBMIT:return u(o({},t),{onSubmit:e.payload.onSubmit});case r.UPDATE_ON_SAVE:return u(o({},t),{onSave:e.payload.onSave});case r.UPDATE_ON_PAGE_CHANGE:return u(o({},t),{onPageChange:e.payload.onPageChange});case r.UPDATE_ON_STEP_CHANGE:return u(o({},t),{onStepChange:e.payload.onStepChange});case r.UPDATE_GET_FILE_DATA:return u(o({},t),{getFileData:e.payload.getFileData});case r.UPDATE_PAGE_SIZE:return u(o({},t),{pageSize:e.payload.pageSize});case r.UPDATE_LOAD_FILE_LIST:return u(o({},t),{loadFileList:e.payload.loadFileList});case r.UPDATE_BEFORE_ROTATE:return u(o({},t),{beforeRotate:e.payload.beforeRotate});case r.SKIP_BEFORE_PAGE_TURNING:return u(o({},t),{skipBeforePageTurning:e.payload.skipBeforePageTurning});case r.SET_FILE_DATA:{const{fileData:n,index:l}=e.payload,{imgList:i}=t,a=[...i];return a[l]=o(o({},a[l]),n),u(o({},t),{imgList:a})}case r.UPDATE_ROTATE:{const{toolInstance:n,beforeRotate:l}=t;return l&&l()===!1||n==null||n.updateRotate(),t}case r.UPDATE_ANNOTATION_VALID:{const{toolInstance:n}=t,l=(Z=n==null?void 0:n.valid)!=null?Z:!0;return rt.destroyAll(),rt.confirm({content:B.t(l?"updateValidFromValidToInValid":"updateValidFromInValidToValid"),onOk:()=>{n==null||n.setValid(!l)},okText:B.t("Confirm"),cancelText:B.t("Cancel")}),t}case r.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:l,imgList:i,step:a}=t;if(!n)return t;if(l===0||l>=i.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),t;const d=i[l-1].result;if(!d)return t;const c=$.copyResultChange(d,a,(Q=i[l].result)!=null?Q:"");i[l]=u(o({},i[l]),{result:c});const g=H(c)[`step_${a}`],T=(g==null?void 0:g.result)||[];return n==null||n.setResult(T),n==null||n.history.pushHistory(T),u(o({},t),{imgList:[...i]})}case r.SET_STEP:{const{stepList:n,annotationEngine:l}=t,{toStep:i}=e.payload;if(!l)return t;const a=h(n,i);return l==null||l.setToolName(a.tool,a.config),u(o({},t),{step:i,toolInstance:l==null?void 0:l.toolInstance})}case r.SET_LOADING:{const{loading:n}=e.payload;return u(o({},t),{loading:!!n})}case r.SET_POINT_CLOUD_LOADING:{const{pointCloudLoading:n}=e.payload;return u(o({},t),{pointCloudLoading:!!n})}case r.BATCH_UPDATE_TRACK_ID:{const{id:n,newID:l,rangeIndex:i,imgList:a}=e.payload,{imgIndex:d,onSubmit:c}=t,f=a.map((g,T)=>st.isInRange(T,i)?u(o({},g),{result:it.batchUpdateTrackID({id:n,newID:l,result:g.result})}):g);return c&&c([f[d]],W.BatchUpdateTrackID,d,f),u(o({},t),{imgList:f})}case r.BATCH_UPDATE_RESULT_BY_TRACK_ID:{const{id:n,newData:l,rangeIndex:i}=e.payload,{imgList:a,imgIndex:d,onSubmit:c}=t,f=a.map((g,T)=>st.isInRange(T,i)?u(o({},g),{result:it.batchUpdateResultByTrackID({id:n,newData:l,result:g.result})}):g);return c&&c([f[d]],W.BatchUpdateTrackID,d,f),u(o({},t),{imgList:f})}default:return t}};export{ht as LoadFileAndFileData,xt as annotationReducer,wt as composeResultByToolInstance,h as getStepConfig,Ct as getTotalPage};
|
|
@@ -1 +1 @@
|
|
|
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 { IFileItem } from '@/types/data';\nimport { IStepInfo } from '@/types/step';\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 composeResultByToolInstance = ({\n toolInstance,\n imgList,\n imgIndex,\n stepList,\n step = 1,\n}: {\n toolInstance: any;\n imgList: IFileItem[];\n imgIndex: number;\n stepList: IStepInfo[];\n step?: number;\n}) => {\n const oldResultString = imgList[imgIndex]?.result || '';\n const [resultList, 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 return imgList.map((v, i) => {\n if (i === imgIndex) {\n return {\n ...v,\n result: newResultString,\n ...extraData,\n };\n }\n return {\n ...v,\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 const newImgList = state.imgList.map((v, i) => {\n if (i === imgIndex) {\n // Update Result\n const newResult = AnnotationDataUtils.dataCorrection(\n newResultString,\n oldResultString,\n step,\n stepList,\n );\n\n return {\n ...v,\n result: newResult,\n ...extraData,\n };\n }\n return v;\n });\n\n // Just for sync imgList\n if (action.payload?.submitType === ESubmitType.SyncImgList) {\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], action.payload?.submitType, imgIndex, newImgList);\n }\n\n const stepProgress = calcStepProgress(newImgList, step);\n return {\n ...state,\n stepProgress,\n imgList: newImgList,\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, imgList } = action.payload;\n const { imgIndex, onSubmit } = state;\n const newImgList = imgList.map((v: IFileItem, i: number) => {\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 case ANNOTATION_ACTIONS.BATCH_UPDATE_RESULT_BY_TRACK_ID: {\n const { id, newData, 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.batchUpdateResultByTrackID({ id, newData, 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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"}
|
|
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 { IFileItem } from '@/types/data';\nimport { IStepInfo } from '@/types/step';\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 composeResultByToolInstance = ({\n toolInstance,\n imgList,\n imgIndex,\n stepList,\n step = 1,\n}: {\n toolInstance: any;\n imgList: IFileItem[];\n imgIndex: number;\n stepList: IStepInfo[];\n step?: number;\n}) => {\n const oldResultString = imgList[imgIndex]?.result || '';\n const [resultList, 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 return imgList.map((v, i) => {\n if (i === imgIndex) {\n return {\n ...v,\n result: newResultString,\n ...extraData,\n };\n }\n return {\n ...v,\n };\n });\n};\n\nexport const annotationReducer = (\n state = { ...initialState },\n action: AnnotationActionTypes,\n): AnnotationState => {\n switch (action.type) {\n case ANNOTATION_ACTIONS.INIT_ALL_STATE: {\n return {\n ...state,\n ...initialState,\n };\n }\n\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 const newImgList = state.imgList.map((v, i) => {\n if (i === imgIndex) {\n // Update Result\n const newResult = AnnotationDataUtils.dataCorrection(\n newResultString,\n oldResultString,\n step,\n stepList,\n );\n\n return {\n ...v,\n result: newResult,\n ...extraData,\n };\n }\n return v;\n });\n\n // Just for sync imgList\n if (action.payload?.submitType === ESubmitType.SyncImgList) {\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], action.payload?.submitType, imgIndex, newImgList);\n }\n\n const stepProgress = calcStepProgress(newImgList, step);\n return {\n ...state,\n stepProgress,\n imgList: newImgList,\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, imgList } = action.payload;\n const { imgIndex, onSubmit } = state;\n const newImgList = imgList.map((v: IFileItem, i: number) => {\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 case ANNOTATION_ACTIONS.BATCH_UPDATE_RESULT_BY_TRACK_ID: {\n const { id, newData, 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.batchUpdateResultByTrackID({ id, newData, 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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ViewportProvider as _}from"../../components/customResizeHook/index.js";import{prefix as y}from"../../constant/index.js";import{Spin as E}from"antd";import{Layout as s}from"antd/es";import o from"react";import
|
|
1
|
+
import{ViewportProvider as _}from"../../components/customResizeHook/index.js";import{prefix as y}from"../../constant/index.js";import{Spin as E}from"antd";import{Layout as s}from"antd/es";import o from"react";import h from"./annotationOperation/index.js";import x from"./annotationTips/index.js";import g from"./sidebar/index.js";import c from"./toolFooter/index.js";import j from"./toolHeader/index.js";import{getStepConfig as w}from"../../store/annotation/reducer.js";import P from"../../components/videoAnnotate/index.js";import{connect as T}from"react-redux";import u from"../../utils/ToolUtils.js";import N from"../../components/pointCloudView/index.js";import{getClassName as C}from"../../utils/dom.js";import{classnames as O}from"../../utils/index.js";import{LabelBeeContext as S}from"../../store/ctx.js";var V=Object.defineProperty,f=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable,v=(e,t,n)=>t in e?V(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))A.call(t,n)&&v(e,n,t[n]);if(f)for(var n of f(t))b.call(t,n)&&v(e,n,t[n]);return e};const{Sider:L,Content:I}=s,d=`${y}-layout`,$=e=>{var t;return o.createElement(o.Fragment,null,e.showTips===!0&&o.createElement(x,{path:e.path,tips:e.tips}),o.createElement(h,m({},e)),o.createElement(c,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},F=e=>{var t;return o.createElement(o.Fragment,null,o.createElement(N,{drawLayerSlot:e.drawLayerSlot,checkMode:e.checkMode}),o.createElement(c,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},M=e=>{var t;const{stepList:n,step:l}=e,a=(t=w(n,l))==null?void 0:t.tool,i=u.isVideoTool(a),r=u.isPointCloudTool(a);return i?o.createElement(P,m({},e)):r?o.createElement(F,m({},e)):o.createElement($,m({},e))},k=e=>{var t,n,l,a,i;const r=(n=(t=e.style)==null?void 0:t.sider)==null?void 0:n.width;return o.createElement(_,null,o.createElement(E,{spinning:e.loading},o.createElement(s,{className:O([d,e.className]),style:(l=e.style)==null?void 0:l.layout},o.createElement("header",{className:`${d}__header`,style:(a=e.style)==null?void 0:a.header},o.createElement(j,{header:e==null?void 0:e.header,headerName:e.headerName,goBack:e.goBack,exportData:e.exportData})),o.createElement(s,{className:C("layout","container")},e==null?void 0:e.leftSider,o.createElement(I,{className:`${d}__content`},o.createElement(M,m({},e))),o.createElement(L,{className:`${d}__side`,width:r!=null?r:240,style:(i=e.style)==null?void 0:i.sider},o.createElement(g,{sider:e==null?void 0:e.sider}))))))},B=({annotation:e})=>{var t,n,l;const{imgList:a,loading:i}=e,r=(t=a[e.imgIndex])!=null?t:{};return{path:(l=(n=r==null?void 0:r.path)!=null?n:r==null?void 0:r.url)!=null?l:"",loading:i}};var H=T(B,null,null,{context:S})(k);export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/views/MainView/index.tsx"],"sourcesContent":["import { AppProps } from '@/App';\nimport { ViewportProvider } from '@/components/customResizeHook';\nimport { prefix } from '@/constant';\nimport { Spin } from 'antd';\nimport { Layout } from 'antd/es';\nimport _ from 'lodash';\nimport React from 'react';\nimport AnnotationOperation from './annotationOperation';\nimport AnnotationTips from './annotationTips';\nimport Sidebar from './sidebar';\nimport ToolFooter from './toolFooter';\nimport ToolHeader from './toolHeader';\nimport { getStepConfig } from '@/store/annotation/reducer';\n\nimport VideoAnnotate from '@/components/videoAnnotate';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport ToolUtils from '@/utils/ToolUtils';\nimport PointCloudView from '@/components/pointCloudView';\nimport { getClassName } from '@/utils/dom';\nimport { classnames } from '@/utils';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n path: string;\n loading: boolean;\n}\n\nconst { Sider, Content } = Layout;\n\nconst layoutCls = `${prefix}-layout`;\n\nconst ImageAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n {props.showTips === true && <AnnotationTips path={props.path} tips={props.tips} />}\n <AnnotationOperation {...props} />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst PointCloudAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n <PointCloudView />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst AnnotatedArea: React.FC<AppProps & IProps> = (props) => {\n const { stepList, step } = props;\n const currentToolName = getStepConfig(stepList, step)?.tool;\n const isVideoTool = ToolUtils.isVideoTool(currentToolName);\n const isPointCloudTool = ToolUtils.isPointCloudTool(currentToolName);\n\n if (isVideoTool) {\n return <VideoAnnotate {...props} />;\n }\n\n if (isPointCloudTool) {\n return <PointCloudAnnotate {...props} />;\n }\n\n return <ImageAnnotate {...props} />;\n};\n\nconst MainView: React.FC<AppProps & IProps> = (props) => {\n const siderWidth = props.style?.sider?.width;\n\n return (\n <ViewportProvider>\n <Spin spinning={props.loading}>\n <Layout className={classnames([layoutCls, props.className])} style={props.style?.layout}>\n <header className={`${layoutCls}__header`} style={props.style?.header}>\n <ToolHeader\n header={props?.header}\n headerName={props.headerName}\n goBack={props.goBack}\n exportData={props.exportData}\n />\n </header>\n\n <Layout className={getClassName('layout', 'container')}>\n {props?.leftSider}\n <Content className={`${layoutCls}__content`}>\n <AnnotatedArea {...props} />\n </Content>\n <Sider\n className={`${layoutCls}__side`}\n width={siderWidth
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/views/MainView/index.tsx"],"sourcesContent":["import { AppProps } from '@/App';\nimport { ViewportProvider } from '@/components/customResizeHook';\nimport { prefix } from '@/constant';\nimport { Spin } from 'antd';\nimport { Layout } from 'antd/es';\nimport _ from 'lodash';\nimport React from 'react';\nimport AnnotationOperation from './annotationOperation';\nimport AnnotationTips from './annotationTips';\nimport Sidebar from './sidebar';\nimport ToolFooter from './toolFooter';\nimport ToolHeader from './toolHeader';\nimport { getStepConfig } from '@/store/annotation/reducer';\n\nimport VideoAnnotate from '@/components/videoAnnotate';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport ToolUtils from '@/utils/ToolUtils';\nimport PointCloudView from '@/components/pointCloudView';\nimport { getClassName } from '@/utils/dom';\nimport { classnames } from '@/utils';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n path: string;\n loading: boolean;\n}\n\nconst { Sider, Content } = Layout;\n\nconst layoutCls = `${prefix}-layout`;\n\nconst ImageAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n {props.showTips === true && <AnnotationTips path={props.path} tips={props.tips} />}\n <AnnotationOperation {...props} />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst PointCloudAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n <PointCloudView drawLayerSlot={props.drawLayerSlot} checkMode={props.checkMode}/>\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst AnnotatedArea: React.FC<AppProps & IProps> = (props) => {\n const { stepList, step } = props;\n const currentToolName = getStepConfig(stepList, step)?.tool;\n const isVideoTool = ToolUtils.isVideoTool(currentToolName);\n const isPointCloudTool = ToolUtils.isPointCloudTool(currentToolName);\n\n if (isVideoTool) {\n return <VideoAnnotate {...props} />;\n }\n\n if (isPointCloudTool) {\n return <PointCloudAnnotate {...props} />;\n }\n\n return <ImageAnnotate {...props} />;\n};\n\nconst MainView: React.FC<AppProps & IProps> = (props) => {\n const siderWidth = props.style?.sider?.width;\n\n return (\n <ViewportProvider>\n <Spin spinning={props.loading}>\n <Layout className={classnames([layoutCls, props.className])} style={props.style?.layout}>\n <header className={`${layoutCls}__header`} style={props.style?.header}>\n <ToolHeader\n header={props?.header}\n headerName={props.headerName}\n goBack={props.goBack}\n exportData={props.exportData}\n />\n </header>\n\n <Layout className={getClassName('layout', 'container')}>\n {props?.leftSider}\n <Content className={`${layoutCls}__content`}>\n <AnnotatedArea {...props} />\n </Content>\n <Sider\n className={`${layoutCls}__side`}\n width={siderWidth ?? 240}\n style={props.style?.sider}\n >\n <Sidebar sider={props?.sider} />\n </Sider>\n </Layout>\n </Layout>\n </Spin>\n </ViewportProvider>\n );\n};\n\nconst mapStateToProps = ({ annotation }: AppState) => {\n const { imgList, loading } = annotation;\n const imgInfo = imgList[annotation.imgIndex] ?? {};\n return {\n path: imgInfo?.path ?? imgInfo?.url ?? '', // 将当前路径的数据注入\n loading,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(MainView);\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import f,{useState as d,useRef as p,useEffect as v}from"react";import{connect as S}from"react-redux";import A from"../../../../components/attributeList/index.js";import g from"../../../../utils/StepUtils.js";import{jsonParser as I}from"../../../../utils/index.js";import{useTranslation as x}from"react-i18next";import{EToolName as L}from"../../../../data/enums/ToolType.js";import{LabelBeeContext as h}from"../../../../store/ctx.js";const T=t=>{var o;const[c,l]=d(0),i=p(null),{toolInstance:
|
|
1
|
+
import f,{useState as d,useRef as p,useEffect as v}from"react";import{connect as S}from"react-redux";import A from"../../../../components/attributeList/index.js";import g from"../../../../utils/StepUtils.js";import{jsonParser as I}from"../../../../utils/index.js";import{useTranslation as x}from"react-i18next";import{EToolName as L}from"../../../../data/enums/ToolType.js";import{LabelBeeContext as h}from"../../../../store/ctx.js";const T=t=>{var o;const[c,l]=d(0),i=p(null),{toolInstance:e}=t,{t:b}=x();if(v(()=>(e&&e.singleOn("changeAttributeSidebar",a=>{var s;l(n=>n+1),!!i.current&&((s=i.current.children[a])==null||s.scrollIntoView({block:"center"}))}),()=>{e==null||e.unbindAll("changeAttributeSidebar")}),[e,i]),!t.stepInfo)return null;const r=I(t.stepInfo.config),u=t.stepInfo.tool===L.ScribbleTool;if(r.attributeConfigurable!==!0&&!u)return null;if((r.attributeConfigurable===!0||u)&&(r==null?void 0:r.attributeList)){const a=r.attributeList.map(n=>({label:n.key,value:n.value,color:n==null?void 0:n.color}));u||a.unshift({label:b("NoAttribute"),value:""});const s=n=>{e.setDefaultAttribute(n),l(m=>m+1)};return f.createElement("div",null,f.createElement(A,{list:a,attributeChanged:s,selectedAttribute:(o=e==null?void 0:e.defaultAttribute)!=null?o:"",ref:i,forbidDefault:u}))}return null},j=t=>{var o,c;const l=g.getCurrentStepInfo((o=t.annotation)==null?void 0:o.step,(c=t.annotation)==null?void 0:c.stepList);return{toolInstance:t.annotation.toolInstance,stepInfo:l}};var C=S(j,null,null,{context:h})(T);export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/SwitchAttributeList/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { connect } from 'react-redux';\nimport { AppState } from 'src/store';\nimport { GraphToolInstance } from 'src/store/annotation/types';\nimport AttributeList from '@/components/attributeList';\nimport StepUtils from '@/utils/StepUtils';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { useTranslation } from 'react-i18next';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n stepInfo: IStepInfo;\n}\n\nconst SwitchAttributeList: React.FC<IProps> = (props) => {\n const [_, forceRender] = useState(0);\n const listRef = useRef<HTMLElement>(null);\n const { toolInstance } = props;\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('changeAttributeSidebar', (index: number) => {\n forceRender((s) => s + 1);\n\n if (!listRef.current) {\n return;\n }\n\n listRef.current.children[index]?.scrollIntoView({ block: 'center' });\n });\n }\n return () => {\n toolInstance
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/SwitchAttributeList/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { connect } from 'react-redux';\nimport { AppState } from 'src/store';\nimport { GraphToolInstance } from 'src/store/annotation/types';\nimport AttributeList from '@/components/attributeList';\nimport StepUtils from '@/utils/StepUtils';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { useTranslation } from 'react-i18next';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n stepInfo: IStepInfo;\n}\n\nconst SwitchAttributeList: React.FC<IProps> = (props) => {\n const [_, forceRender] = useState(0);\n const listRef = useRef<HTMLElement>(null);\n const { toolInstance } = props;\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('changeAttributeSidebar', (index: number) => {\n forceRender((s) => s + 1);\n\n if (!listRef.current) {\n return;\n }\n\n listRef.current.children[index]?.scrollIntoView({ block: 'center' });\n });\n }\n return () => {\n toolInstance?.unbindAll('changeAttributeSidebar');\n };\n }, [toolInstance, listRef]);\n\n if (!props.stepInfo) {\n return null;\n }\n\n const config = jsonParser(props.stepInfo.config);\n const isScribbleTool = props.stepInfo.tool === EToolName.ScribbleTool;\n\n if (config.attributeConfigurable !== true && !isScribbleTool) {\n return null;\n }\n\n if ((config.attributeConfigurable === true || isScribbleTool) && config?.attributeList) {\n const list = config.attributeList.map((i: any) => ({\n label: i.key,\n value: i.value,\n color: i?.color,\n }));\n\n if (!isScribbleTool) {\n list.unshift({ label: t('NoAttribute'), value: '' });\n }\n\n const attributeChanged = (v: string) => {\n toolInstance.setDefaultAttribute(v);\n forceRender((s) => s + 1);\n };\n\n return (\n <div>\n <AttributeList\n list={list}\n attributeChanged={attributeChanged}\n selectedAttribute={toolInstance?.defaultAttribute ?? ''}\n ref={listRef}\n forbidDefault={isScribbleTool}\n />\n </div>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n\n return {\n toolInstance: state.annotation.toolInstance,\n stepInfo,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n SwitchAttributeList,\n);\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@labelbee/lb-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0-alpha.1",
|
|
4
4
|
"description": "Provide a complete library of annotation components",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"es": "./es/index.js",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@ant-design/icons": "^4.6.2",
|
|
44
|
-
"@labelbee/lb-annotation": "^1.
|
|
45
|
-
"@labelbee/lb-utils": "^1.
|
|
44
|
+
"@labelbee/lb-annotation": "^1.12.0-alpha.1",
|
|
45
|
+
"@labelbee/lb-utils": "^1.5.0-alpha.1",
|
|
46
46
|
"ahooks": "^3.4.0",
|
|
47
47
|
"classnames": "^2.3.0",
|
|
48
48
|
"lodash": "^4.17.21",
|
|
@@ -97,5 +97,5 @@
|
|
|
97
97
|
"path": "node_modules/cz-conventional-changelog"
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
|
-
"gitHead": "
|
|
100
|
+
"gitHead": "71dd3b568e4c7c83660be33120999a33ac88b30f"
|
|
101
101
|
}
|