@labelbee/lb-components 1.9.0 → 1.9.1-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.
Files changed (264) hide show
  1. package/dist/components/pointCloudView/PointCloud3DView.js +1 -1
  2. package/dist/components/pointCloudView/PointCloudBackView.js +1 -1
  3. package/dist/components/pointCloudView/PointCloudContext.js +1 -1
  4. package/dist/components/pointCloudView/PointCloudInfos.js +1 -1
  5. package/dist/components/pointCloudView/PointCloudListener.js +1 -1
  6. package/dist/components/pointCloudView/PointCloudSideView.js +1 -1
  7. package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
  8. package/dist/components/pointCloudView/components/PointCloudSizeSlider/index.js +1 -0
  9. package/dist/index.css +17 -0
  10. package/dist/types/components/pointCloudView/components/PointCloudSizeSlider/index.d.ts +5 -0
  11. package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  12. package/es/App.js.map +1 -0
  13. package/es/assets/annotation/common/icon_adapt.svg.js.map +1 -0
  14. package/es/assets/annotation/common/icon_adapt_black.svg.js.map +1 -0
  15. package/es/assets/annotation/common/icon_back.svg.js.map +1 -0
  16. package/es/assets/annotation/common/icon_backA.svg.js.map +1 -0
  17. package/es/assets/annotation/common/icon_clear.svg.js.map +1 -0
  18. package/es/assets/annotation/common/icon_clearSmall.svg.js.map +1 -0
  19. package/es/assets/annotation/common/icon_clearSmall_a.svg.js.map +1 -0
  20. package/es/assets/annotation/common/icon_clear_a.svg.js.map +1 -0
  21. package/es/assets/annotation/common/icon_invalid.svg.js.map +1 -0
  22. package/es/assets/annotation/common/icon_invalid_a.svg.js.map +1 -0
  23. package/es/assets/annotation/common/icon_next.svg.js.map +1 -0
  24. package/es/assets/annotation/common/icon_nextA.svg.js.map +1 -0
  25. package/es/assets/annotation/common/icon_r.svg.js.map +1 -0
  26. package/es/assets/annotation/common/icon_rA.svg.js.map +1 -0
  27. package/es/assets/annotation/common/icon_save.svg.js.map +1 -0
  28. package/es/assets/annotation/common/icon_saveA.svg.js.map +1 -0
  29. package/es/assets/annotation/image/brightness.svg.js.map +1 -0
  30. package/es/assets/annotation/image/contrast.svg.js.map +1 -0
  31. package/es/assets/annotation/image/icon_yuantu.svg.js.map +1 -0
  32. package/es/assets/annotation/image/saturation.svg.js.map +1 -0
  33. package/es/assets/annotation/lineTool/icon_line.svg.js.map +1 -0
  34. package/es/assets/annotation/lineTool/icon_line_a.svg.js.map +1 -0
  35. package/es/assets/annotation/pointCloudTool/changePointCloudValid.svg.js.map +1 -0
  36. package/es/assets/annotation/pointCloudTool/copy.svg.js.map +1 -0
  37. package/es/assets/annotation/pointCloudTool/nextBox.svg.js.map +1 -0
  38. package/es/assets/annotation/pointCloudTool/nodata.svg.js.map +1 -0
  39. package/es/assets/annotation/pointCloudTool/patse.svg.js.map +1 -0
  40. package/es/assets/annotation/pointCloudTool/prevBox.svg.js.map +1 -0
  41. package/es/assets/annotation/pointCloudTool/rotate180_black.svg.js.map +1 -0
  42. package/es/assets/annotation/pointCloudTool/selectAll.svg.js.map +1 -0
  43. package/es/assets/annotation/pointCloudTool/selectMultiple.svg.js.map +1 -0
  44. package/es/assets/annotation/pointCloudTool/unitAttribute.svg.js.map +1 -0
  45. package/es/assets/annotation/pointCloudTool/unitAttributeForbid.svg.js.map +1 -0
  46. package/es/assets/annotation/pointCloudTool/unitAttributeHover.svg.js.map +1 -0
  47. package/es/assets/annotation/pointTool/icon_point.svg.js.map +1 -0
  48. package/es/assets/annotation/pointTool/icon_point_a.svg.js.map +1 -0
  49. package/es/assets/annotation/polygonTool/icon_polygon.svg.js.map +1 -0
  50. package/es/assets/annotation/polygonTool/icon_polygon_a.svg.js.map +1 -0
  51. package/es/assets/annotation/rectTool/icon_rect.svg.js.map +1 -0
  52. package/es/assets/annotation/rectTool/icon_rectPattern.svg.js +4 -0
  53. package/es/assets/annotation/rectTool/icon_rectPattern.svg.js.map +1 -0
  54. package/es/assets/annotation/rectTool/icon_rect_a.svg.js.map +1 -0
  55. package/es/assets/annotation/toolHotKeyIcon/icon_alttab_kj.svg.js.map +1 -0
  56. package/es/assets/annotation/toolHotKeyIcon/icon_back_kj.svg.js.map +1 -0
  57. package/es/assets/annotation/toolHotKeyIcon/icon_cencel_kj.svg.js.map +1 -0
  58. package/es/assets/annotation/toolHotKeyIcon/icon_copyBackwardResult.svg.js +4 -0
  59. package/es/assets/annotation/toolHotKeyIcon/icon_copyBackwardResult.svg.js.map +1 -0
  60. package/es/assets/annotation/toolHotKeyIcon/icon_del_kj.svg.js.map +1 -0
  61. package/es/assets/annotation/toolHotKeyIcon/icon_forward_kj.svg.js.map +1 -0
  62. package/es/assets/annotation/toolHotKeyIcon/icon_frameActive_kj.svg.js.map +1 -0
  63. package/es/assets/annotation/toolHotKeyIcon/icon_frameChange_kj.svg.js.map +1 -0
  64. package/es/assets/annotation/toolHotKeyIcon/icon_frameNull_kj.svg.js.map +1 -0
  65. package/es/assets/annotation/toolHotKeyIcon/icon_frame_kj.svg.js.map +1 -0
  66. package/es/assets/annotation/toolHotKeyIcon/icon_fullView_kj.svg.js.map +1 -0
  67. package/es/assets/annotation/toolHotKeyIcon/icon_kj1.svg.js.map +1 -0
  68. package/es/assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js.map +1 -0
  69. package/es/assets/annotation/toolHotKeyIcon/icon_last_kj.svg.js.map +1 -0
  70. package/es/assets/annotation/toolHotKeyIcon/icon_lineActive_kj.svg.js.map +1 -0
  71. package/es/assets/annotation/toolHotKeyIcon/icon_lineChange_kj.svg.js.map +1 -0
  72. package/es/assets/annotation/toolHotKeyIcon/icon_lineCont_kj.svg.js.map +1 -0
  73. package/es/assets/annotation/toolHotKeyIcon/icon_lineDel_kj.svg.js.map +1 -0
  74. package/es/assets/annotation/toolHotKeyIcon/icon_lineInsert_kj.svg.js.map +1 -0
  75. package/es/assets/annotation/toolHotKeyIcon/icon_lineNull_kj.svg.js.map +1 -0
  76. package/es/assets/annotation/toolHotKeyIcon/icon_lineSpecial_kj.svg.js.map +1 -0
  77. package/es/assets/annotation/toolHotKeyIcon/icon_line_kj.svg.js.map +1 -0
  78. package/es/assets/annotation/toolHotKeyIcon/icon_loupe_kj.svg.js.map +1 -0
  79. package/es/assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js.map +1 -0
  80. package/es/assets/annotation/toolHotKeyIcon/icon_mouse_middle_kj.svg.js.map +1 -0
  81. package/es/assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js.map +1 -0
  82. package/es/assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js.map +1 -0
  83. package/es/assets/annotation/toolHotKeyIcon/icon_next_kj.svg.js.map +1 -0
  84. package/es/assets/annotation/toolHotKeyIcon/icon_noDisplay.svg.js.map +1 -0
  85. package/es/assets/annotation/toolHotKeyIcon/icon_playPause.svg.js.map +1 -0
  86. package/es/assets/annotation/toolHotKeyIcon/icon_pointActive_kj.svg.js.map +1 -0
  87. package/es/assets/annotation/toolHotKeyIcon/icon_pointNull_kj.svg.js.map +1 -0
  88. package/es/assets/annotation/toolHotKeyIcon/icon_point_kj.svg.js.map +1 -0
  89. package/es/assets/annotation/toolHotKeyIcon/icon_polygonActive_kj.svg.js.map +1 -0
  90. package/es/assets/annotation/toolHotKeyIcon/icon_polygonChange_kj.svg.js.map +1 -0
  91. package/es/assets/annotation/toolHotKeyIcon/icon_polygonDel_kj.svg.js.map +1 -0
  92. package/es/assets/annotation/toolHotKeyIcon/icon_polygonInsert_kj.svg.js.map +1 -0
  93. package/es/assets/annotation/toolHotKeyIcon/icon_polygonMerge_kj.svg.js.map +1 -0
  94. package/es/assets/annotation/toolHotKeyIcon/icon_polygonNull_kj.svg.js.map +1 -0
  95. package/es/assets/annotation/toolHotKeyIcon/icon_reform_kj.svg.js.map +1 -0
  96. package/es/assets/annotation/toolHotKeyIcon/icon_reload_kj.svg.js.map +1 -0
  97. package/es/assets/annotation/toolHotKeyIcon/icon_save_kj.svg.js.map +1 -0
  98. package/es/assets/annotation/toolHotKeyIcon/icon_segment.svg.js.map +1 -0
  99. package/es/assets/annotation/toolHotKeyIcon/icon_speed_kj.svg.js.map +1 -0
  100. package/es/assets/annotation/toolHotKeyIcon/icon_straightLine_kj.svg.js.map +1 -0
  101. package/es/assets/annotation/toolHotKeyIcon/icon_tab_kj.svg.js.map +1 -0
  102. package/es/assets/annotation/toolHotKeyIcon/icon_tag_kj.svg.js.map +1 -0
  103. package/es/assets/annotation/toolHotKeyIcon/icon_unGrip_kj.svg.js.map +1 -0
  104. package/es/assets/annotation/toolHotKeyIcon/setValid.svg.js.map +1 -0
  105. package/es/assets/annotation/video/icon_keyboard_h.svg.js.map +1 -0
  106. package/es/assets/attributeIcon/eraser.svg.js.map +1 -0
  107. package/es/assets/attributeIcon/eraser_a.svg.js.map +1 -0
  108. package/es/assets/attributeIcon/pen.svg.js.map +1 -0
  109. package/es/assets/attributeIcon/pen_a.svg.js.map +1 -0
  110. package/es/assets/attributeIcon/zoomUp.svg.js.map +1 -0
  111. package/es/assets/cssIcon/annotation/icon_clearSmall.svg +10 -0
  112. package/es/assets/cssIcon/annotation/icon_clearSmall_a.svg +10 -0
  113. package/es/assets/cssIcon/slide_btn.svg +23 -0
  114. package/es/assets/predictTracking/icon.svg.js +4 -0
  115. package/es/assets/predictTracking/icon.svg.js.map +1 -0
  116. package/es/assets/toolStyle/icon_border.svg.js.map +1 -0
  117. package/es/assets/toolStyle/icon_borderColor.svg.js.map +1 -0
  118. package/es/assets/toolStyle/icon_opacityFill.svg.js.map +1 -0
  119. package/es/assets/toolStyle/icon_opacityStroke.svg.js.map +1 -0
  120. package/es/components/AnnotationView/index.js.map +1 -0
  121. package/es/components/AnnotationView/pointCloudAnnotationView.js.map +1 -0
  122. package/es/components/ImageError/index.js +53 -0
  123. package/es/components/ImageError/index.js.map +1 -0
  124. package/es/components/annotationStepPopover/index.js.map +1 -0
  125. package/es/components/attributeList/index.js.map +1 -0
  126. package/es/components/checkboxList/index.js.map +1 -0
  127. package/es/components/colorTag/index.js.map +1 -0
  128. package/es/components/customAntd/IconWithText/index.js.map +1 -0
  129. package/es/components/customResizeHook/index.js.map +1 -0
  130. package/es/components/fileException/FileError.js.map +1 -0
  131. package/es/components/fileException/FileInvalid.js.map +1 -0
  132. package/es/components/fileException/index.js.map +1 -0
  133. package/es/components/pointCloudView/PointCloud2DView.js.map +1 -0
  134. package/es/components/pointCloudView/PointCloud3DView.js +1 -1
  135. package/es/components/pointCloudView/PointCloud3DView.js.map +1 -0
  136. package/es/components/pointCloudView/PointCloudBackView.js +1 -1
  137. package/es/components/pointCloudView/PointCloudBackView.js.map +1 -0
  138. package/es/components/pointCloudView/PointCloudContext.js +1 -1
  139. package/es/components/pointCloudView/PointCloudContext.js.map +1 -0
  140. package/es/components/pointCloudView/PointCloudInfos.js +1 -1
  141. package/es/components/pointCloudView/PointCloudInfos.js.map +1 -0
  142. package/es/components/pointCloudView/PointCloudLayout.js.map +1 -0
  143. package/es/components/pointCloudView/PointCloudListener.js +1 -1
  144. package/es/components/pointCloudView/PointCloudListener.js.map +1 -0
  145. package/es/components/pointCloudView/PointCloudSideView.js +1 -1
  146. package/es/components/pointCloudView/PointCloudSideView.js.map +1 -0
  147. package/es/components/pointCloudView/PointCloudTopView.js +1 -1
  148. package/es/components/pointCloudView/PointCloudTopView.js.map +1 -0
  149. package/es/components/pointCloudView/components/EmptyPage/index.js.map +1 -0
  150. package/es/components/pointCloudView/components/PointCloudSizeSlider/index.js +1 -0
  151. package/es/components/pointCloudView/components/PointCloudSizeSlider/index.js.map +1 -0
  152. package/es/components/pointCloudView/components/UnifiedParamsModal/index.js +228 -0
  153. package/es/components/pointCloudView/components/UnifiedParamsModal/index.js.map +1 -0
  154. package/es/components/pointCloudView/components/UnifyParamsModal/index.js.map +1 -0
  155. package/es/components/pointCloudView/data.js +4 -0
  156. package/es/components/pointCloudView/data.js.map +1 -0
  157. package/es/components/pointCloudView/hooks/useAttribute.js.map +1 -0
  158. package/es/components/pointCloudView/hooks/useBoxes.js.map +1 -0
  159. package/es/components/pointCloudView/hooks/useConfig.js.map +1 -0
  160. package/es/components/pointCloudView/hooks/useHistory.js.map +1 -0
  161. package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -0
  162. package/es/components/pointCloudView/hooks/usePolygon.js.map +1 -0
  163. package/es/components/pointCloudView/hooks/useRotate.js.map +1 -0
  164. package/es/components/pointCloudView/hooks/useSingleBox.js.map +1 -0
  165. package/es/components/pointCloudView/hooks/useStatus.js.map +1 -0
  166. package/es/components/pointCloudView/hooks/useZoom.js.map +1 -0
  167. package/es/components/pointCloudView/index.js.map +1 -0
  168. package/es/components/predictTracking/index.js +3 -0
  169. package/es/components/predictTracking/index.js.map +1 -0
  170. package/es/components/predictTracking/predictTrackingIcon/index.js +91 -0
  171. package/es/components/predictTracking/predictTrackingIcon/index.js.map +1 -0
  172. package/es/components/predictTracking/previewResult/index.js +189 -0
  173. package/es/components/predictTracking/previewResult/index.js.map +1 -0
  174. package/es/components/predictTracking/previewResult/util.js +135 -0
  175. package/es/components/predictTracking/previewResult/util.js.map +1 -0
  176. package/es/components/videoAnnotate/index.js.map +1 -0
  177. package/es/components/videoPlayer/TagToolInstanceAdaptor.js.map +1 -0
  178. package/es/components/videoPlayer/TagToolInstanceAdaptorI18nProvider.js.map +1 -0
  179. package/es/components/videoPlayer/VideoTagLayer.js.map +1 -0
  180. package/es/components/videoPlayer/components/controller/index.js.map +1 -0
  181. package/es/components/videoPlayer/index.js.map +1 -0
  182. package/es/components/videoPlayer/utils.js.map +1 -0
  183. package/es/configureStore.js.map +1 -0
  184. package/es/constant/index.js.map +1 -0
  185. package/es/constant/styleString.js.map +1 -0
  186. package/es/data/Style.js.map +1 -0
  187. package/es/data/enums/AnnotationSize.js.map +1 -0
  188. package/es/data/enums/ToolType.js.map +1 -0
  189. package/es/hooks/annotation.js.map +1 -0
  190. package/es/hooks/useConfig.js +18 -0
  191. package/es/hooks/useConfig.js.map +1 -0
  192. package/es/hooks/useRafState.js.map +1 -0
  193. package/es/hooks/useRefCache.js.map +1 -0
  194. package/es/hooks/useSafeSate.js.map +1 -0
  195. package/es/hooks/useSize.js.map +1 -0
  196. package/es/hooks/useUnmountedRef.js.map +1 -0
  197. package/es/index.css +17 -0
  198. package/es/index.js.map +1 -0
  199. package/es/store/Actions.js.map +1 -0
  200. package/es/store/annotation/actionCreators.js.map +1 -0
  201. package/es/store/annotation/map.js.map +1 -0
  202. package/es/store/annotation/reducer.js.map +1 -0
  203. package/es/store/annotation/selectors.js.map +1 -0
  204. package/es/store/ctx.js.map +1 -0
  205. package/es/store/imgAttribute/actionCreators.js.map +1 -0
  206. package/es/store/imgAttribute/reducer.js.map +1 -0
  207. package/es/store/index.js.map +1 -0
  208. package/es/store/toolStyle/actionCreators.js.map +1 -0
  209. package/es/store/toolStyle/reducer.js.map +1 -0
  210. package/es/utils/AnnotationDataUtils.js.map +1 -0
  211. package/es/utils/ConfigUtils.js.map +1 -0
  212. package/es/utils/PageOperator.js.map +1 -0
  213. package/es/utils/StepUtils.js.map +1 -0
  214. package/es/utils/TextUtils.js.map +1 -0
  215. package/es/utils/ToolStyleUtils.js.map +1 -0
  216. package/es/utils/ToolUtils.js.map +1 -0
  217. package/es/utils/data.js.map +1 -0
  218. package/es/utils/dom.js.map +1 -0
  219. package/es/utils/index.js.map +1 -0
  220. package/es/views/MainView/annotationOperation/index.js.map +1 -0
  221. package/es/views/MainView/annotationTips/index.js.map +1 -0
  222. package/es/views/MainView/index.js.map +1 -0
  223. package/es/views/MainView/sidebar/AnnotationText/index.js.map +1 -0
  224. package/es/views/MainView/sidebar/ClearIcon/index.js.map +1 -0
  225. package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js.map +1 -0
  226. package/es/views/MainView/sidebar/GeneralOperation/index.js.map +1 -0
  227. package/es/views/MainView/sidebar/GeneralOperation/useOperationList.js.map +1 -0
  228. package/es/views/MainView/sidebar/ImgAttributeInfo/index.js.map +1 -0
  229. package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js.map +1 -0
  230. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  231. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -0
  232. package/es/views/MainView/sidebar/ScribbleSidebar/index.js.map +1 -0
  233. package/es/views/MainView/sidebar/SwitchAttributeList/index.js.map +1 -0
  234. package/es/views/MainView/sidebar/TagSidebar/index.js.map +1 -0
  235. package/es/views/MainView/sidebar/TextAreaFormat/index.js.map +1 -0
  236. package/es/views/MainView/sidebar/TextToolSidebar/index.js.map +1 -0
  237. package/es/views/MainView/sidebar/ToolIcons.js.map +1 -0
  238. package/es/views/MainView/sidebar/ToolStyle/index.js.map +1 -0
  239. package/es/views/MainView/sidebar/index.js.map +1 -0
  240. package/es/views/MainView/toolFooter/AnnotatedAttributes/index.js.map +1 -0
  241. package/es/views/MainView/toolFooter/FooterPopover.js.map +1 -0
  242. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/common/index.js.map +1 -0
  243. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -0
  244. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/line/index.js.map +1 -0
  245. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/point/index.js.map +1 -0
  246. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js.map +1 -0
  247. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/polygon/index.js.map +1 -0
  248. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/rectToolShortCutTable/index.js.map +1 -0
  249. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js.map +1 -0
  250. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/tag/index.js.map +1 -0
  251. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/text/index.js.map +1 -0
  252. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/videoTag/index.js.map +1 -0
  253. package/es/views/MainView/toolFooter/FooterTips/index.js.map +1 -0
  254. package/es/views/MainView/toolFooter/HiddenTips/index.js.map +1 -0
  255. package/es/views/MainView/toolFooter/PageNumber/index.js.map +1 -0
  256. package/es/views/MainView/toolFooter/Pagination.js.map +1 -0
  257. package/es/views/MainView/toolFooter/ZoomController/ZoomLevel/index.js.map +1 -0
  258. package/es/views/MainView/toolFooter/ZoomController/index.js.map +1 -0
  259. package/es/views/MainView/toolFooter/index.js.map +1 -0
  260. package/es/views/MainView/toolHeader/ExportData/index.js.map +1 -0
  261. package/es/views/MainView/toolHeader/StepSwitch/index.js.map +1 -0
  262. package/es/views/MainView/toolHeader/headerOption/index.js.map +1 -0
  263. package/es/views/MainView/toolHeader/index.js.map +1 -0
  264. package/package.json +4 -4
@@ -0,0 +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 checkMode: 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 /**\n * Async PointCloud Data.\n */\n // @ts-ignore \n toolInstance?.asyncData?.(imgList[imgIndex]);\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.SET_CHECK_MODE: {\n const { checkMode } = action.payload;\n return {\n ...state,\n checkMode: !!checkMode,\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\n // Record the updated list.\n const updateImgList: Array<{ newInfo: IFileItem; imgIndex: number }> = [];\n const newImgList = imgList.map((v: IFileItem, i: number) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n const newInfo = {\n ...v,\n result: PointCloudUtils.batchUpdateTrackID({ id, newID, result: v.result }),\n };\n\n updateImgList.push({\n imgIndex: i,\n newInfo,\n });\n\n return newInfo;\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList, {\n updateImgList,\n });\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 // Record the updated list.\n const updateImgList: Array<{ newInfo: IFileItem; imgIndex: number }> = [];\n const newImgList = imgList.map((v, i) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n const newInfo = {\n ...v,\n result: PointCloudUtils.batchUpdateResultByTrackID({ id, newData, result: v.result }),\n };\n\n updateImgList.push({\n imgIndex: i,\n newInfo,\n });\n\n return newInfo;\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList, {\n updateImgList,\n });\n }\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n // eslint-disable-next-line no-fallthrough\n default:\n return state;\n }\n};\n"],"names":["this"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sources":["../../../src/store/annotation/selectors.ts"],"sourcesContent":["import { jsonParser } from '@/utils';\nimport { getStepConfig } from './reducer';\nimport { AnnotationState } from './types';\n\n/**\n * select current step config\n */\nexport const stepConfigSelector = ({ annotation }: { annotation: AnnotationState }) => {\n const { stepList, step } = annotation;\n return jsonParser(getStepConfig(stepList, step)?.config);\n};\n"],"names":[],"mappings":";;;AAOa,MAAA,kBAAA,GAAqB,CAAC,CAAE,UAAkD,CAAA,KAAA;AAPvF,EAAA,IAAA,EAAA,CAAA;AAQE,EAAM,MAAA,CAAE,UAAU,IAAS,CAAA,GAAA,UAAA,CAAA;AAC3B,EAAA,OAAO,UAAW,CAAA,CAAA,EAAA,GAAA,aAAA,CAAc,QAAU,EAAA,IAAA,CAAA,KAAxB,IAA+B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ctx.js","sources":["../../src/store/ctx.ts"],"sourcesContent":["import React from 'react';\nimport { createDispatchHook, createSelectorHook } from 'react-redux';\nimport { AnyAction, Dispatch } from 'redux';\n\nexport const LabelBeeContext = React.createContext(undefined) as any;\nexport const useDispatch = createDispatchHook(LabelBeeContext) as () => Dispatch<AnyAction | any>; // TODO, Any need to be updated.\nexport const useSelector = createSelectorHook(LabelBeeContext);\n"],"names":[],"mappings":";;;AAIa,MAAA,eAAA,GAAkB,MAAM,aAAc,CAAA,KAAA,CAAA,EAAA;AAC5C,MAAM,cAAc,kBAAmB,CAAA,eAAA,EAAA;AACvC,MAAM,cAAc,kBAAmB,CAAA,eAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionCreators.js","sources":["../../../src/store/imgAttribute/actionCreators.ts"],"sourcesContent":["import { IMAGE_ATTRIBUTE_ACTIONS } from '@/store/Actions';\nimport { ImgAttributeActionTypes, ImgAttributeState } from './types';\n\nexport function UpdateImgAttribute(imgAttribute: ImgAttributeState): ImgAttributeActionTypes {\n return {\n type: IMAGE_ATTRIBUTE_ACTIONS.UPDATE_IMG_ATTRIBUTE,\n payload: imgAttribute,\n };\n}\n\nexport function InitImgAttribute(): ImgAttributeActionTypes {\n return {\n type: IMAGE_ATTRIBUTE_ACTIONS.INIT_IMG_ATTRIBUTE,\n payload: {}\n };\n}\n\nexport default {\n UpdateImgAttribute,\n InitImgAttribute,\n};\n"],"names":[],"mappings":";;AAGO,SAAA,kBAAA,CAA4B,YAA0D,EAAA;AAC3F,EAAO,OAAA;AAAA,IACL,MAAM,uBAAwB,CAAA,oBAAA;AAAA,IAC9B,OAAS,EAAA,YAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAI+C,SAAA,gBAAA,GAAA;AAC1D,EAAO,OAAA;AAAA,IACL,MAAM,uBAAwB,CAAA,kBAAA;AAAA,IAC9B,OAAS,EAAA,EAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAIb,mBAAe;AAAA,EACb,kBAAA;AAAA,EACA,gBAAA;AAAA,CAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sources":["../../../src/store/imgAttribute/reducer.ts"],"sourcesContent":["import { IMAGE_ATTRIBUTE_ACTIONS } from '@/store/Actions';\nimport { ImgAttributeState, ImgAttributeActionTypes } from './types';\n\nconst initialState: ImgAttributeState = {\n contrast: 1,\n saturation: 1,\n brightness: 1,\n zoomRatio: 1,\n isOriginalSize: false,\n};\n\nexport function imgAttributeReducer(\n state = { ...initialState },\n action: ImgAttributeActionTypes,\n): ImgAttributeState {\n switch (action.type) {\n case IMAGE_ATTRIBUTE_ACTIONS.UPDATE_IMG_ATTRIBUTE: {\n return {\n ...state,\n ...action.payload,\n };\n }\n\n case IMAGE_ATTRIBUTE_ACTIONS.INIT_IMG_ATTRIBUTE: {\n return {\n ...initialState,\n };\n }\n\n default:\n return state;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAGA,MAAM,YAAkC,GAAA;AAAA,EACtC,QAAU,EAAA,CAAA;AAAA,EACV,UAAY,EAAA,CAAA;AAAA,EACZ,UAAY,EAAA,CAAA;AAAA,EACZ,SAAW,EAAA,CAAA;AAAA,EACX,cAAgB,EAAA,KAAA;AAAA,CAAA,CAAA;AAIhB,SAAA,mBAAA,CAAA,KAAA,GAAQ,cAAK,CAAA,EAAA,EAAA,YAAA,CAAA,EACb,MACmB,EAAA;AACnB,EAAA,QAAQ,MAAO,CAAA,IAAA;AAAA,IAAA,KACR,wBAAwB,oBAAsB,EAAA;AACjD,MAAO,OAAA,cAAA,CAAA,cAAA,CAAA,EAAA,EACF,QACA,MAAO,CAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,KAIT,wBAAwB,kBAAoB,EAAA;AAC/C,MAAA,OAAO,cACF,CAAA,EAAA,EAAA,YAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA;AAKL,MAAO,OAAA,KAAA,CAAA;AAAA,GAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/store/index.ts"],"sourcesContent":["import { combineReducers, CombinedState } from 'redux';\nimport { annotationReducer } from './annotation/reducer';\nimport { imgAttributeReducer } from './imgAttribute/reducer';\nimport { toolStyleReducer } from './toolStyle/reducer';\n\nexport const rootReducer: CombinedState<any> = combineReducers({\n annotation: annotationReducer,\n imgAttribute: imgAttributeReducer,\n toolStyle: toolStyleReducer,\n});\n\nexport type AppState = ReturnType<typeof rootReducer>;\n"],"names":[],"mappings":";;;;;AAKO,MAAM,cAAkC,eAAgB,CAAA;AAAA,EAC7D,UAAY,EAAA,iBAAA;AAAA,EACZ,YAAc,EAAA,mBAAA;AAAA,EACd,SAAW,EAAA,gBAAA;AAAA,CAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionCreators.js","sources":["../../../src/store/toolStyle/actionCreators.ts"],"sourcesContent":["import { TOOL_STYLE_ACTIONS } from '@/store/Actions';\nimport { ToolStyleActionTypes, ToolStyleState } from './types';\n\nexport function InitToolStyleConfig(): ToolStyleActionTypes {\n return {\n type: TOOL_STYLE_ACTIONS.INIT_TOOL_STYLE_CONFIG,\n payload: undefined\n };\n}\n\nexport function UpdateToolStyleConfig(toolStyle: Partial<ToolStyleState>): ToolStyleActionTypes {\n return {\n type: TOOL_STYLE_ACTIONS.UPDATE_TOOL_STYLE_CONFIG,\n payload: toolStyle,\n };\n}\n\nexport default {\n InitToolStyleConfig,\n UpdateToolStyleConfig,\n};\n"],"names":[],"mappings":";;AAG4D,SAAA,mBAAA,GAAA;AAC1D,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,sBAAA;AAAA,IACzB,OAAS,EAAA,KAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA;AAIN,SAAA,qBAAA,CAA+B,SAA0D,EAAA;AAC9F,EAAO,OAAA;AAAA,IACL,MAAM,kBAAmB,CAAA,wBAAA;AAAA,IACzB,OAAS,EAAA,SAAA;AAAA,GAAA,CAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sources":["../../../src/store/toolStyle/reducer.ts"],"sourcesContent":["import { COLORS_ARRAY, NULL_COLOR } from '@/data/Style';\nimport { ToolStyleUtils } from '@/utils/ToolStyleUtils';\nimport { TOOL_STYLE_ACTIONS } from '@/store/Actions';\nimport { ToolStyleActionTypes, ToolStyleState } from './types';\n\nconst initialState: ToolStyleState = {\n color: 1,\n width: 2,\n borderOpacity: 9,\n fillOpacity: 9,\n toolColor: ToolStyleUtils.getToolColors(),\n attributeColor: ToolStyleUtils.getAttributeColors(),\n lineColor: ToolStyleUtils.getDefaultToolLineColors(),\n attributeLineColor: [NULL_COLOR].concat(COLORS_ARRAY),\n};\n\nexport function toolStyleReducer(\n state = { ...initialState },\n action: ToolStyleActionTypes,\n): ToolStyleState {\n switch (action.type) {\n case TOOL_STYLE_ACTIONS.INIT_TOOL_STYLE_CONFIG: {\n return {\n ...initialState,\n };\n }\n\n case TOOL_STYLE_ACTIONS.UPDATE_TOOL_STYLE_CONFIG: {\n const computeColor = {};\n const payload = action.payload;\n if (payload?.borderOpacity || payload?.fillOpacity) {\n Object.assign(\n computeColor,\n ToolStyleUtils.initByOpacity(\n payload.borderOpacity || state.borderOpacity,\n payload.fillOpacity || state.fillOpacity,\n ),\n );\n }\n\n return {\n ...state,\n ...action.payload,\n ...computeColor,\n };\n }\n\n default:\n return state;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAKA,MAAM,YAA+B,GAAA;AAAA,EACnC,KAAO,EAAA,CAAA;AAAA,EACP,KAAO,EAAA,CAAA;AAAA,EACP,aAAe,EAAA,CAAA;AAAA,EACf,WAAa,EAAA,CAAA;AAAA,EACb,WAAW,cAAe,CAAA,aAAA,EAAA;AAAA,EAC1B,gBAAgB,cAAe,CAAA,kBAAA,EAAA;AAAA,EAC/B,WAAW,cAAe,CAAA,wBAAA,EAAA;AAAA,EAC1B,kBAAA,EAAoB,CAAC,UAAA,CAAA,CAAY,MAAO,CAAA,YAAA,CAAA;AAAA,CAAA,CAAA;AAIxC,SAAA,gBAAA,CAAA,KAAA,GAAQ,cAAK,CAAA,EAAA,EAAA,YAAA,CAAA,EACb,MACgB,EAAA;AAChB,EAAA,QAAQ,MAAO,CAAA,IAAA;AAAA,IAAA,KACR,mBAAmB,sBAAwB,EAAA;AAC9C,MAAA,OAAO,cACF,CAAA,EAAA,EAAA,YAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,KAIF,mBAAmB,wBAA0B,EAAA;AAChD,MAAA,MAAM,YAAe,GAAA,EAAA,CAAA;AACrB,MAAA,MAAM,UAAU,MAAO,CAAA,OAAA,CAAA;AACvB,MAAI,IAAA,CAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAS,aAAiB,MAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAS,WAAa,CAAA,EAAA;AAClD,QAAO,MAAA,CAAA,MAAA,CACL,YACA,EAAA,cAAA,CAAe,aACb,CAAA,OAAA,CAAQ,iBAAiB,KAAM,CAAA,aAAA,EAC/B,OAAQ,CAAA,WAAA,IAAe,KAAM,CAAA,WAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAKnC,MAAO,OAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,EAAA,EACF,KACA,CAAA,EAAA,MAAA,CAAO,OACP,CAAA,EAAA,YAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA;AAKL,MAAO,OAAA,KAAA,CAAA;AAAA,GAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnnotationDataUtils.js","sources":["../../src/utils/AnnotationDataUtils.ts"],"sourcesContent":["import { uuid } from '@labelbee/lb-annotation';\nimport { jsonParser } from '.';\nimport { EToolName } from '@/data/enums/ToolType';\nimport _ from 'lodash';\nimport StepUtils from './StepUtils';\nimport { IStepInfo } from '@/types/step';\n\nexport default class AnnotationDataUtils {\n /**\n * 复制上一张图片结果\n * @param copyResult 复制的结果\n * @param step 复制的步骤\n * @param currentResult 当前的步骤\n * @returns\n */\n public static copyResultChange(copyResult: string, step: number, currentResult: string) {\n // 其实其限定的范围一般都在单图的情况\n try {\n const copyData = jsonParser(copyResult);\n const currentData = jsonParser(currentResult);\n const stepName = `step_${step}`;\n if (copyData[stepName]) {\n // 这层可能还要处理 dataSource 依赖问题\n const info = copyData[stepName];\n if (info.result) {\n info.result = info.result.map((info: any) => ({\n ...info,\n // @ts-ignore\n id: uuid(8, 62),\n }));\n currentData[stepName] = info;\n return JSON.stringify(currentData);\n }\n }\n return copyResult;\n } catch {\n return copyResult;\n }\n }\n\n /**\n * 判断结果sourceID与依赖数据的id是否能对应\n * @param result\n * @param basicResultList\n */\n public static isResultSourceMatchedDependence(result: any, basicResultList: any[]) {\n const sourceIDForCurStep = result?.map((i: { sourceID: string }) => i.sourceID).sort();\n const sourceIDForDependStep = basicResultList?.map((i) => i.id).sort();\n\n return _.isEqual(sourceIDForCurStep, sourceIDForDependStep);\n }\n\n /**\n * 获取依赖增量更新的内容\n * @param result\n * @param basicResultList\n * @returns\n */\n public static deltaUpdateBasicResultList(result: any, basicResultList: any[]) {\n const sourceIDForCurStep = result?.map((i: { sourceID: string }) => i.sourceID).sort();\n\n return basicResultList.filter((v) => !sourceIDForCurStep.includes(v.id));\n }\n\n /**\n *\n * @param stepResult\n * @param toolInstance\n * @param stepConfig\n * @param basicResultList 获取初始化数据 该部分默认输入需要为空数组\n * @param isInitData\n * @returns\n */\n public static getInitialResultList(\n stepResult: any[] | undefined,\n toolInstance: any,\n stepConfig: any,\n basicResultList: any[],\n isInitData: boolean,\n ) {\n const resultList = stepResult ?? [];\n\n switch (stepConfig.tool) {\n case EToolName.Tag:\n case EToolName.Text: {\n /**\n * 在依赖的情况下,检查的是否需要增量更新前面新增的结果\n */\n if (stepConfig.dataSourceStep > 0) {\n const deltaResultList = this.deltaUpdateBasicResultList(resultList, basicResultList);\n if (deltaResultList.length > 0) {\n return resultList.concat(\n toolInstance.getInitResultList(stepConfig.dataSourceStep, deltaResultList),\n );\n }\n }\n\n if (isInitData !== true) {\n return resultList;\n }\n\n return toolInstance.getInitResultList(stepConfig.dataSourceStep, basicResultList);\n }\n\n default: {\n return resultList;\n }\n }\n }\n\n /**\n * 修正数据,找到被删除的数据,并将依赖该数据的结果全部删除\n * @param newResStr 新提交的数据\n * @param oldResStr 当前的数据\n * @param step 当前操作的步骤\n * @param stepList 步骤列表\n */\n public static dataCorrection(\n newResStr: string,\n oldResStr: string,\n step: number,\n stepList: IStepInfo[],\n ) {\n try {\n const curStep = StepUtils.getStepInfo(step, stepList);\n const stepKey = `step_${curStep.step}`;\n const newRes = jsonParser(newResStr);\n const oldRes = jsonParser(oldResStr);\n const newResForCurStep = newRes[stepKey]?.result;\n const oldResForCurStep = oldRes[stepKey]?.result;\n\n /** 没有旧数据时不处理 */\n if (!oldResForCurStep) {\n return newResStr;\n }\n\n if (_.isEqual(newResForCurStep.sort(this.idCmp), oldResForCurStep.sort(this.idCmp))) {\n return newResStr;\n }\n\n const deletedIds = this.findDeletedIds(newResForCurStep, oldResForCurStep);\n\n if (deletedIds.length === 0) {\n return newResStr;\n }\n\n const dataSourceStep = step;\n const stepKeys = this.getStepKeys(newRes).sort();\n this.deleteRes(newRes, dataSourceStep, deletedIds, stepKeys);\n\n return JSON.stringify(newRes);\n } catch (error) {\n console.error(error);\n return newResStr;\n }\n }\n\n /**\n * id sort 规则\n * @param a\n * @param b\n * @returns\n */\n public static idCmp(a: any, b: any) {\n const idA = a.id;\n const idB = b.id;\n if (idA < idB) {\n return -1;\n }\n if (idA > idB) {\n return 1;\n }\n\n return 0;\n }\n\n /**\n * 找到结果被删除的id\n * @param newResForCurStep\n * @param oldResForCurStep\n * @returns {Array<string>}\n */\n public static findDeletedIds(newResForCurStep: any[], oldResForCurStep: any[]) {\n return this.findDeletedItems(oldResForCurStep, newResForCurStep).map((i) => i.id);\n }\n\n /**\n * 找到被删除的结果\n * @param oldResForCurStep\n * @param newResForCurStep\n * @returns {Array<any>}\n */\n public static findDeletedItems(oldResForCurStep: any[], newResForCurStep: any[]) {\n const deletedItems: any[] = [];\n oldResForCurStep.forEach((i: any) => {\n const isNewResExisted = newResForCurStep.some((r: any) => r.id === i.id);\n if (!isNewResExisted) {\n deletedItems.push(i);\n }\n });\n return deletedItems;\n }\n\n /**\n * 根据结果找到所有的步骤\n * @param res\n * @returns {Array<number>} 结果步骤列表\n */\n public static getStepKeys(res: any) {\n return Object.keys(res)\n .map((i) => parseInt(i.replace('step_', ''), 10))\n .filter((i) => !isNaN(i));\n }\n\n /**\n * 删除依赖数据的结果\n * @param resData 当前文件的结果\n * @param dataSourceStep 依赖步骤\n * @param deletedIds 需要删除的sourceID\n * @param stepKeys 结果的步骤\n */\n public static deleteRes(\n resData: any,\n dataSourceStep: number,\n deletedIds: string[],\n stepKeys: number[],\n ) {\n stepKeys.forEach((s) => {\n if (s > dataSourceStep) {\n const stepRes = resData[`step_${s}`];\n // 文件夹标签, 分割工具 没有依赖, 不进行判断\n if ([EToolName.FolderTag, EToolName.Segmentation].includes(stepRes.tool)) {\n return;\n }\n if (stepRes.dataSourceStep === dataSourceStep) {\n const newDeletedIds: string[] = [];\n stepRes.result = stepRes.result.filter((i: any) => {\n const exist = deletedIds.includes(i.sourceID);\n if (exist) {\n newDeletedIds.push(i.id);\n return false;\n }\n\n return true;\n });\n this.deleteRes(resData, s, newDeletedIds, stepKeys);\n } else {\n // 非直接依赖关系下,也同样过滤删除了对应框的数据(注意: 该场景不包含 filterData 过滤属性下,更改框的属性来删除对应的框体)\n stepRes.result = stepRes.result.filter((i: any) => {\n const exist = deletedIds.includes(i.sourceID);\n if (exist) {\n return false;\n }\n\n return true;\n });\n }\n }\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigUtils.js","sources":["../../src/utils/ConfigUtils.ts"],"sourcesContent":["import { isObject } from 'lodash';\n\nexport class ConfigUtils {\n public static jsonParser(content: any, defaultValue: any = {}) {\n try {\n if (typeof content === 'string') {\n return JSON.parse(content);\n }\n return isObject(content) ? content : defaultValue;\n } catch (e) {\n return defaultValue;\n }\n }\n\n /**\n * 获取对应的步骤配置\n * @param stepList \n * @param step \n */\n public static getStepConfig = (stepList: any[], step: number) =>\n stepList.find((i) => i.step === step);\n}\n"],"names":[],"mappings":";;AAEyB,MAAA,WAAA,CAAA;AAAA,EACT,OAAA,UAAA,CAAW,OAAc,EAAA,YAAA,GAAoB,EAAI,EAAA;AAC7D,IAAI,IAAA;AACF,MAAI,IAAA,OAAO,YAAY,QAAU,EAAA;AAC/B,QAAA,OAAO,KAAK,KAAM,CAAA,OAAA,CAAA,CAAA;AAAA,OAAA;AAEpB,MAAO,OAAA,QAAA,CAAS,WAAW,OAAU,GAAA,YAAA,CAAA;AAAA,KAAA,CAAA,OAC9B,CAAP,EAAA;AACA,MAAO,OAAA,YAAA,CAAA;AAAA,KAAA;AAAA,GAAA;AAAA,CAAA;AASG,WAjBT,CAiBS,aAAgB,GAAA,CAAC,QAAiB,EAAA,IAAA,KAC9C,SAAS,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,IAAS,KAAA,IAAA,CAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageOperator.js","sources":["../../src/utils/PageOperator.ts"],"sourcesContent":["import { EPageTurningOperation } from '../data/enums/AnnotationSize';\nimport _ from 'lodash';\nimport { jsonParser } from '.';\n\ninterface IPageInfo {\n fileIndex: number;\n basicIndex: number;\n basicList: any[];\n fileList: any[];\n step: number;\n stepList: any[];\n}\n\nclass PageOperator {\n public static getPageInfo(annotationStore: any) {\n const {\n imgIndex: fileIndex,\n imgList: fileList,\n basicResultList: basicList,\n basicIndex,\n step,\n stepList,\n } = annotationStore;\n\n return {\n fileIndex,\n basicIndex,\n basicList,\n fileList,\n step,\n stepList,\n };\n }\n\n /**\n *\n * @param pageTurningOperation\n * @param nextIndex\n */\n public static getNextPageInfo(\n pageTurningOperation: EPageTurningOperation,\n annotationStore: any,\n nextIndex?: number,\n ) {\n const pageInfo: IPageInfo = PageOperator.getPageInfo(annotationStore);\n const { fileIndex: currentFileIndex } = PageOperator.getPageInfo(annotationStore);\n\n const nextFileIndex = PageOperator.getNextFileIndex(pageTurningOperation, pageInfo, nextIndex);\n const nextBasicIndex = PageOperator.getNextBasicIndex(\n pageTurningOperation,\n pageInfo.basicIndex,\n );\n const fileIndexChanged = nextFileIndex !== currentFileIndex;\n\n const hasNextBasicIndex = PageOperator.hasNextBasicIndex(pageTurningOperation, pageInfo);\n\n const pageChangedInfo = {\n fileIndex: nextFileIndex,\n basicIndex: nextBasicIndex,\n fileIndexChanged,\n basicIndexChanged: hasNextBasicIndex,\n };\n\n if (hasNextBasicIndex) {\n pageChangedInfo.fileIndexChanged = false;\n pageChangedInfo.fileIndex = currentFileIndex;\n return pageChangedInfo;\n }\n\n pageChangedInfo.basicIndex =\n pageTurningOperation === EPageTurningOperation.Backward\n ? PageOperator.getBasicResultIndexForNextFile(pageInfo, pageChangedInfo.fileIndex)\n : 0;\n\n return pageChangedInfo;\n }\n\n /**\n * 获取下一个依赖索引\n * @param pageTurningOperation\n */\n public static getNextBasicIndex = (\n pageTurningOperation: EPageTurningOperation,\n basicIndex: number,\n ) => {\n return basicIndex + (pageTurningOperation === EPageTurningOperation.Forward ? 1 : -1);\n };\n\n /**\n * 存在下一个依赖数据\n * @param pageTurningOperation\n */\n public static hasNextBasicIndex = (\n pageTurningOperation: EPageTurningOperation,\n pageInfo: IPageInfo,\n ) => {\n const { basicList } = pageInfo;\n if (basicList?.length > 0) {\n const nextBasicIndex = PageOperator.getNextBasicIndex(\n pageTurningOperation,\n pageInfo.basicIndex,\n );\n\n return nextBasicIndex >= 0 && basicList.length > nextBasicIndex;\n }\n\n return false;\n };\n\n public static getBasicResultIndexForNextFile = (pageInfo: IPageInfo, fileIndex: number) => {\n const { stepList, step, fileList } = pageInfo;\n const stepConfig = stepList.find((i) => i.step === step);\n const dataSourceStep = stepConfig?.dataSourceStep;\n\n if (dataSourceStep) {\n const fileResult = jsonParser(fileList[fileIndex].result);\n const stepResult = fileResult[`step_${dataSourceStep}`]?.result;\n\n if (!stepResult || !stepResult?.length) {\n return 0;\n }\n\n return stepResult?.length - 1;\n }\n\n return 0;\n };\n\n /**\n * 计算下一个文件的索引\n * @param pageTurningOperation\n * @param fileIndex\n */\n public static getNextFileIndex = (\n pageTurningOperation: EPageTurningOperation,\n pageInfo: IPageInfo,\n fileIndex?: number,\n ) => {\n const { fileIndex: currentFileIndex, fileList } = pageInfo;\n\n let newIndex = fileIndex !== undefined ? fileIndex : currentFileIndex;\n switch (pageTurningOperation) {\n case EPageTurningOperation.Forward:\n newIndex += 1;\n break;\n case EPageTurningOperation.Backward:\n newIndex -= 1;\n break;\n case EPageTurningOperation.Jump:\n break;\n }\n\n if (_.inRange(newIndex, 0, fileList.length)) {\n return newIndex;\n }\n\n return currentFileIndex;\n };\n}\n\nexport default PageOperator;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepUtils.js","sources":["../../src/utils/StepUtils.ts"],"sourcesContent":["import { EStepType } from '@/constant';\nimport { IStepInfo } from '@/types/step';\nimport ToolUtils from './ToolUtils';\n\nexport default class StepUtils {\n /**\n * 获取当前步骤的步骤配置信息,用于当前标注配置的获取\n * @export\n * @param {number} currentStep\n * @param {IStepInfo[]} stepList\n * @returns {*}\n */\n public static getCurrentStepInfo(currentStep: number, stepList: IStepInfo[]) {\n const currentStepInfo = this.getStepInfo(currentStep, stepList);\n\n const useDataSourceStep = [EStepType.QUALITY_INSPECTION, EStepType.MANUAL_CORRECTION].includes(\n currentStepInfo?.type,\n );\n\n /** 人工修正、质检获取 dataSourceStep 作为步骤配置 */\n if (useDataSourceStep) {\n return this.getStepInfo(currentStepInfo.dataSourceStep, stepList);\n }\n\n return currentStepInfo;\n }\n\n /**\n * 找到指定步骤的数据\n * @param step 获取的步骤\n * @param stepList 步骤列表\n * @returns 步骤配置\n */\n public static getStepInfo(step: number, stepList: IStepInfo[]) {\n return stepList?.filter((info) => info.step === step)[0];\n }\n\n /**\n * 根据toolName判断当前步骤是否为视频工具\n * @param step 步骤\n * @param stepList 步骤列表\n * @returns {Number} 是否为视频工具\n */\n public static currentToolIsVideo(step: number, stepList: IStepInfo[]) {\n const currentStepInfo = StepUtils.getCurrentStepInfo(step, stepList);\n return ToolUtils.isVideoTool(currentStepInfo?.tool);\n }\n\n\n /**\n * Check for PointCloud\n * @param step \n * @param stepList \n * @returns \n */\n public static currentToolIsPointCloud(step: number, stepList: IStepInfo[]) {\n const currentStepInfo = StepUtils.getCurrentStepInfo(step, stepList);\n return ToolUtils.isPointCloudTool(currentStepInfo?.tool);\n }\n}\n"],"names":[],"mappings":";;;AAI+B,MAAA,SAAA,CAAA;AAAA,EAQf,OAAA,kBAAA,CAAmB,aAAqB,QAAuB,EAAA;AAC3E,IAAM,MAAA,eAAA,GAAkB,IAAK,CAAA,WAAA,CAAY,WAAa,EAAA,QAAA,CAAA,CAAA;AAEtD,IAAA,MAAM,oBAAoB,CAAC,SAAA,CAAU,oBAAoB,SAAU,CAAA,iBAAA,CAAA,CAAmB,SACpF,eAAiB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAA,IAAA,CAAA,CAAA;AAInB,IAAA,IAAI,iBAAmB,EAAA;AACrB,MAAO,OAAA,IAAA,CAAK,WAAY,CAAA,eAAA,CAAgB,cAAgB,EAAA,QAAA,CAAA,CAAA;AAAA,KAAA;AAG1D,IAAO,OAAA,eAAA,CAAA;AAAA,GAAA;AAAA,EASK,OAAA,WAAA,CAAY,MAAc,QAAuB,EAAA;AAC7D,IAAA,OAAO,qCAAU,MAAO,CAAA,CAAC,IAAS,KAAA,IAAA,CAAK,SAAS,IAAM,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAS1C,OAAA,kBAAA,CAAmB,MAAc,QAAuB,EAAA;AACpE,IAAM,MAAA,eAAA,GAAkB,SAAU,CAAA,kBAAA,CAAmB,IAAM,EAAA,QAAA,CAAA,CAAA;AAC3D,IAAO,OAAA,SAAA,CAAU,YAAY,eAAiB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAA,IAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAUlC,OAAA,uBAAA,CAAwB,MAAc,QAAuB,EAAA;AACzE,IAAM,MAAA,eAAA,GAAkB,SAAU,CAAA,kBAAA,CAAmB,IAAM,EAAA,QAAA,CAAA,CAAA;AAC3D,IAAO,OAAA,SAAA,CAAU,iBAAiB,eAAiB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAA,IAAA,CAAA,CAAA;AAAA,GAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextUtils.js","sources":["../../src/utils/TextUtils.ts"],"sourcesContent":["/*\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-01-12 13:15:33\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-05-30 15:51:43\n */\nimport { ETextType } from '@/data/enums/ToolType';\nimport { i18n } from '@labelbee/lb-utils';\n\nexport const REGEXP_NUMBER = '^[0-9]+$';\nexport const REGEXP_ENGLISH = '^[A-Za-z]+$';\n\nexport class TextUtils {\n public static checkString(textCheckType: ETextType, customFormat: string) {\n let regExpString = '';\n switch (textCheckType) {\n case ETextType.Order:\n case ETextType.NumberOnly:\n regExpString = REGEXP_NUMBER;\n break;\n case ETextType.EnglishOnly:\n regExpString = REGEXP_ENGLISH;\n break;\n case ETextType.CustomFormat:\n regExpString = customFormat;\n break;\n }\n return regExpString;\n }\n\n public static getErrorNotice(textCheckType: ETextType) {\n switch (textCheckType) {\n case ETextType.Order:\n case ETextType.NumberOnly:\n return i18n.t(\"TextCheckNumberOnly\");\n case ETextType.EnglishOnly:\n return i18n.t(\"TextCheckEnglishOnly\");\n case ETextType.CustomFormat:\n return i18n.t(\"TextCheckCustomFormat\");\n default:\n return '';\n }\n }\n}\n"],"names":[],"mappings":";;;AASO,MAAM,aAAgB,GAAA,WAAA;AACtB,MAAM,cAAiB,GAAA,cAAA;AAEP,MAAA,SAAA,CAAA;AAAA,EACP,OAAA,WAAA,CAAY,eAA0B,YAAsB,EAAA;AACxE,IAAA,IAAI,YAAe,GAAA,EAAA,CAAA;AACnB,IAAQ,QAAA,aAAA;AAAA,MAAA,KACD,SAAU,CAAA,KAAA,CAAA;AAAA,MAAA,KACV,SAAU,CAAA,UAAA;AACb,QAAe,YAAA,GAAA,aAAA,CAAA;AACf,QAAA,MAAA;AAAA,MAAA,KACG,SAAU,CAAA,WAAA;AACb,QAAe,YAAA,GAAA,cAAA,CAAA;AACf,QAAA,MAAA;AAAA,MAAA,KACG,SAAU,CAAA,YAAA;AACb,QAAe,YAAA,GAAA,YAAA,CAAA;AACf,QAAA,MAAA;AAAA,KAAA;AAEJ,IAAO,OAAA,YAAA,CAAA;AAAA,GAAA;AAAA,EAAA,OAGK,eAAe,aAA0B,EAAA;AACrD,IAAQ,QAAA,aAAA;AAAA,MAAA,KACD,SAAU,CAAA,KAAA,CAAA;AAAA,MAAA,KACV,SAAU,CAAA,UAAA;AACb,QAAA,OAAO,KAAK,CAAE,CAAA,qBAAA,CAAA,CAAA;AAAA,MAAA,KACX,SAAU,CAAA,WAAA;AACb,QAAA,OAAO,KAAK,CAAE,CAAA,sBAAA,CAAA,CAAA;AAAA,MAAA,KACX,SAAU,CAAA,YAAA;AACb,QAAA,OAAO,KAAK,CAAE,CAAA,uBAAA,CAAA,CAAA;AAAA,MAAA;AAEd,QAAO,OAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolStyleUtils.js","sources":["../../src/utils/ToolStyleUtils.ts"],"sourcesContent":["import {\n CHANGE_COLOR,\n DEFAULT_COLOR,\n COLORS_ARRAY,\n NULL_COLOR,\n BORDER_OPACITY_LEVEL,\n FILL_OPACITY_LEVEL,\n} from '@/data/Style';\nimport _ from 'lodash';\n\nconst FILL_OPACITY = 0.8;\n\nexport class ToolStyleUtils {\n public static changeOpacity: { [a: number]: number } = {\n 1: 0.2,\n 3: 0.4,\n 5: 0.6,\n 7: 0.8,\n 9: 1.0,\n };\n\n public static colorSplit(color: string, opacity: number) {\n return color\n .split(' ')\n .join('')\n .replace(/,[0-9]+([.]{1}[0-9]+){0,1}\\)/, `,${opacity.toFixed(2)})`);\n }\n\n public static computeOpacity(opacity: number, color: string) {\n const s =\n color\n .split(' ')\n .join('')\n .match(/,[0-9]+([.]{1}[0-9]+){0,1}\\)/)?.[0] || '';\n let firstOpacity = s.match(/[0-9]+([.]{1}[0-9]+){0,1}/)?.[0];\n return opacity * Number(firstOpacity);\n }\n\n public static getToolColors(borderOpacityParam = 9, fillOpacityParam = 9) {\n const colorSplit = ToolStyleUtils.colorSplit;\n const computeOpacity = ToolStyleUtils.computeOpacity;\n\n const toolColor = _.cloneDeep(CHANGE_COLOR);\n const borderOpacity = BORDER_OPACITY_LEVEL[borderOpacityParam];\n const fillOpacity = FILL_OPACITY_LEVEL[fillOpacityParam];\n\n Object.keys(CHANGE_COLOR).forEach((color: any) => {\n const showColor = _.cloneDeep(DEFAULT_COLOR);\n showColor.valid.stroke = colorSplit(\n CHANGE_COLOR[color].valid,\n computeOpacity(borderOpacity, CHANGE_COLOR[color].valid),\n );\n showColor.valid.fill = colorSplit(\n CHANGE_COLOR[color].valid,\n computeOpacity(fillOpacity, CHANGE_COLOR[color].valid) * FILL_OPACITY,\n );\n showColor.validSelected.stroke = colorSplit(\n CHANGE_COLOR[color].select.stroke,\n computeOpacity(borderOpacity, CHANGE_COLOR[color].select.stroke),\n );\n showColor.validSelected.fill = colorSplit(\n CHANGE_COLOR[color].select.fill,\n computeOpacity(fillOpacity, CHANGE_COLOR[color].select.fill) * FILL_OPACITY,\n );\n showColor.validHover.stroke = colorSplit(\n CHANGE_COLOR[color].hover,\n computeOpacity(borderOpacity, CHANGE_COLOR[color].hover),\n );\n showColor.validHover.fill = colorSplit(\n CHANGE_COLOR[color].hover,\n computeOpacity(fillOpacity, CHANGE_COLOR[color].hover) * FILL_OPACITY,\n );\n\n // 无效的比例是一样的\n showColor.invalid.stroke = colorSplit(\n showColor.invalid.stroke,\n computeOpacity(borderOpacity, showColor.invalid.stroke),\n );\n showColor.invalid.fill = colorSplit(\n showColor.invalid.stroke,\n computeOpacity(fillOpacity, showColor.invalid.stroke) * FILL_OPACITY,\n );\n showColor.invalidSelected.stroke = colorSplit(\n showColor.invalidSelected.stroke,\n computeOpacity(borderOpacity, showColor.invalidSelected.stroke),\n );\n showColor.invalidSelected.fill = colorSplit(\n showColor.invalidSelected.fill,\n computeOpacity(fillOpacity, showColor.invalidSelected.fill) * FILL_OPACITY,\n );\n showColor.invalidHover.stroke = colorSplit(\n showColor.invalidHover.stroke,\n computeOpacity(borderOpacity, showColor.invalidHover.fill),\n );\n showColor.invalidHover.fill = colorSplit(\n showColor.invalidHover.fill,\n computeOpacity(fillOpacity, showColor.invalidHover.fill) * FILL_OPACITY,\n );\n toolColor[color] = showColor;\n });\n return toolColor;\n }\n\n public static getAttributeColors(borderOpacityParam = 9, fillOpacityParam = 9) {\n const colorSplit = ToolStyleUtils.colorSplit;\n const computeOpacity = ToolStyleUtils.computeOpacity;\n const borderOpacity = BORDER_OPACITY_LEVEL[borderOpacityParam];\n const fillOpacity = FILL_OPACITY_LEVEL[fillOpacityParam];\n\n let AttributeColorList: string[] = _.cloneDeep(COLORS_ARRAY);\n AttributeColorList.unshift(NULL_COLOR);\n AttributeColorList = AttributeColorList.map((item) => {\n const showColor = JSON.parse(JSON.stringify(DEFAULT_COLOR));\n showColor.valid.stroke = colorSplit(item, computeOpacity(borderOpacity, item));\n showColor.valid.fill = colorSplit(\n item,\n computeOpacity(fillOpacity, item) * FILL_OPACITY * 0.5,\n );\n showColor.validSelected.stroke = colorSplit(item, computeOpacity(borderOpacity, item));\n showColor.validSelected.fill = colorSplit(\n item,\n computeOpacity(fillOpacity, item) * FILL_OPACITY,\n );\n showColor.validHover.stroke = colorSplit(item, computeOpacity(borderOpacity, item));\n showColor.validHover.fill = colorSplit(\n item,\n computeOpacity(fillOpacity, item) * FILL_OPACITY,\n );\n showColor.invalid.stroke = colorSplit(\n showColor.invalid.stroke,\n computeOpacity(borderOpacity, item),\n );\n showColor.invalid.fill = colorSplit(\n showColor.invalid.fill,\n computeOpacity(fillOpacity, item) * FILL_OPACITY * 0.5,\n );\n showColor.invalidSelected.stroke = colorSplit(\n showColor.invalidSelected.stroke,\n computeOpacity(borderOpacity, item),\n );\n showColor.invalidSelected.fill = colorSplit(\n showColor.invalidSelected.fill,\n computeOpacity(fillOpacity, item) * FILL_OPACITY,\n );\n showColor.invalidHover.stroke = colorSplit(\n showColor.invalidHover.stroke,\n computeOpacity(borderOpacity, item),\n );\n showColor.invalidHover.fill = colorSplit(\n showColor.invalidHover.fill,\n computeOpacity(fillOpacity, item) * FILL_OPACITY,\n );\n return showColor;\n });\n return AttributeColorList;\n }\n\n public static getDefaultToolLineColors() {\n const toolColor: any = {};\n Object.keys(CHANGE_COLOR).forEach((color: any) => {\n toolColor[color] = CHANGE_COLOR[color].line;\n });\n return toolColor;\n }\n\n public static initByOpacity(borderOpacity: number, fillOpacity: number) {\n return {\n toolColor: this.getToolColors(borderOpacity, fillOpacity),\n attributeColor: this.getAttributeColors(borderOpacity, fillOpacity),\n };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolUtils.js","sources":["../../src/utils/ToolUtils.ts"],"sourcesContent":["/**\n * @author Glenfiddish <edwinlee0927@hotmail.com>\n * @file Tool utils\n * @date 2022-06-20\n */\n\nimport { cTool } from '@labelbee/lb-annotation';\nconst { EVideoToolName, EPointCloudName } = cTool;\n\nclass ToolUtils {\n public static isVideoTool(tool?: string) {\n return tool ? (Object.values(EVideoToolName) as string[]).includes(tool) : false;\n }\n\n public static isPointCloudTool(tool?: string) {\n return tool ? (Object.values(EPointCloudName) as string[]).includes(tool) : false;\n }\n}\n\nexport default ToolUtils;\n"],"names":[],"mappings":";;AAOA,MAAM,CAAE,gBAAgB,eAAoB,CAAA,GAAA,KAAA,CAAA;AAE5C,MAAgB,SAAA,CAAA;AAAA,EAAA,OACA,YAAY,IAAe,EAAA;AACvC,IAAA,OAAO,IAAQ,GAAA,MAAA,CAAO,MAAO,CAAA,cAAA,CAAA,CAA6B,SAAS,IAAQ,CAAA,GAAA,KAAA,CAAA;AAAA,GAAA;AAAA,EAAA,OAG/D,iBAAiB,IAAe,EAAA;AAC5C,IAAA,OAAO,IAAQ,GAAA,MAAA,CAAO,MAAO,CAAA,eAAA,CAAA,CAA8B,SAAS,IAAQ,CAAA,GAAA,KAAA,CAAA;AAAA,GAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sources":["../../src/utils/data.ts"],"sourcesContent":["import { jsonParser } from '.';\nimport StepUtils from './StepUtils';\n\n/**\n * 解析结果,将图片信息注入到结果\n * @param result\n * @param basicImgInfo\n */\nexport const composeResultWithBasicImgInfo = (\n result: string,\n basicImgInfo: { [a: string]: any },\n) => {\n const newResult = JSON.stringify({ ...jsonParser(result), ...basicImgInfo });\n return newResult;\n};\n\n// 处理result\nexport const composeResult = (\n result: string,\n pos: {\n step: number;\n stepList: any[];\n },\n newData: {\n rect: any[];\n basicRectID?: string;\n },\n customObject: Object,\n) => {\n const { step, stepList } = pos;\n const { rect, basicRectID } = newData;\n\n try {\n const data = jsonParser(result);\n const currentStepInfo = StepUtils.getCurrentStepInfo(step, stepList);\n const { dataSourceStep } = currentStepInfo;\n\n const stepName = `step_${currentStepInfo.step}`;\n\n if (data[stepName]) {\n const info = data[stepName];\n Object.assign(info, customObject);\n\n if (info.result) {\n if (JSON.stringify(info.result) === JSON.stringify(rect)) {\n return JSON.stringify(data);\n }\n if (basicRectID) {\n info.result = [\n ...info.result.filter(\n (v: { sourceID: string }) => !(v.sourceID && v.sourceID === basicRectID),\n ),\n ...rect.filter((v) => v.sourceID && v.sourceID === basicRectID),\n ];\n } else {\n info.result = rect;\n }\n return JSON.stringify(data);\n }\n return JSON.stringify({\n ...data,\n [stepName]: {\n ...data[stepName],\n ...customObject,\n result: rect,\n },\n });\n }\n // 初始化结果\n return JSON.stringify({\n ...data,\n [stepName]: {\n dataSourceStep,\n ...customObject,\n toolName: stepList[step - 1].tool,\n result: rect,\n },\n });\n } catch (e) {\n return result;\n }\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAQa,MAAA,6BAAA,GAAgC,CAC3C,MAAA,EACA,YACG,KAAA;AACH,EAAA,MAAM,SAAY,GAAA,IAAA,CAAK,SAAU,CAAA,cAAA,CAAA,cAAA,CAAA,EAAA,EAAK,WAAW,MAAY,CAAA,CAAA,EAAA,YAAA,CAAA,CAAA,CAAA;AAC7D,EAAO,OAAA,SAAA,CAAA;AAAA,EAAA;AAIF,MAAM,aAAgB,GAAA,CAC3B,MACA,EAAA,GAAA,EAIA,SAIA,YACG,KAAA;AACH,EAAM,MAAA,CAAE,MAAM,QAAa,CAAA,GAAA,GAAA,CAAA;AAC3B,EAAM,MAAA,CAAE,MAAM,WAAgB,CAAA,GAAA,OAAA,CAAA;AAE9B,EAAI,IAAA;AACF,IAAA,MAAM,OAAO,UAAW,CAAA,MAAA,CAAA,CAAA;AACxB,IAAM,MAAA,eAAA,GAAkB,SAAU,CAAA,kBAAA,CAAmB,IAAM,EAAA,QAAA,CAAA,CAAA;AAC3D,IAAA,MAAM,CAAE,cAAmB,CAAA,GAAA,eAAA,CAAA;AAE3B,IAAM,MAAA,QAAA,GAAW,QAAQ,eAAgB,CAAA,IAAA,CAAA,CAAA,CAAA;AAEzC,IAAA,IAAI,KAAK,QAAW,CAAA,EAAA;AAClB,MAAA,MAAM,OAAO,IAAK,CAAA,QAAA,CAAA,CAAA;AAClB,MAAA,MAAA,CAAO,OAAO,IAAM,EAAA,YAAA,CAAA,CAAA;AAEpB,MAAA,IAAI,KAAK,MAAQ,EAAA;AACf,QAAA,IAAI,KAAK,SAAU,CAAA,IAAA,CAAK,MAAY,CAAA,KAAA,IAAA,CAAK,UAAU,IAAO,CAAA,EAAA;AACxD,UAAA,OAAO,KAAK,SAAU,CAAA,IAAA,CAAA,CAAA;AAAA,SAAA;AAExB,QAAA,IAAI,WAAa,EAAA;AACf,UAAA,IAAA,CAAK,MAAS,GAAA;AAAA,YACZ,GAAG,IAAK,CAAA,MAAA,CAAO,MACb,CAAA,CAAC,MAA4B,EAAE,CAAA,CAAE,QAAY,IAAA,CAAA,CAAE,QAAa,KAAA,WAAA,CAAA,CAAA;AAAA,YAE9D,GAAG,KAAK,MAAO,CAAA,CAAC,MAAM,CAAE,CAAA,QAAA,IAAY,EAAE,QAAa,KAAA,WAAA,CAAA;AAAA,WAAA,CAAA;AAAA,SAEhD,MAAA;AACL,UAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAA;AAAA,SAAA;AAEhB,QAAA,OAAO,KAAK,SAAU,CAAA,IAAA,CAAA,CAAA;AAAA,OAAA;AAExB,MAAO,OAAA,IAAA,CAAK,SAAU,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACjB,IADiB,CAAA,EAAA;AAAA,QAAA,CAEnB,QAAW,GAAA,aAAA,CAAA,cAAA,CAAA,cAAA,CAAA,EAAA,EACP,IAAK,CAAA,QAAA,CAAA,CAAA,EACL,YAFO,CAAA,EAAA;AAAA,UAGV,MAAQ,EAAA,IAAA;AAAA,SAAA,CAAA;AAAA,OAAA,CAAA,CAAA,CAAA;AAAA,KAAA;AAKd,IAAO,OAAA,IAAA,CAAK,SAAU,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACjB,IADiB,CAAA,EAAA;AAAA,MAAA,CAEnB,QAAW,GAAA,aAAA,CAAA,cAAA,CAAA;AAAA,QACV,cAAA;AAAA,OAAA,EACG,YAFO,CAAA,EAAA;AAAA,QAGV,QAAA,EAAU,QAAS,CAAA,IAAA,GAAO,CAAG,CAAA,CAAA,IAAA;AAAA,QAC7B,MAAQ,EAAA,IAAA;AAAA,OAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,OAGL,CAAP,EAAA;AACA,IAAO,OAAA,MAAA,CAAA;AAAA,GAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.js","sources":["../../src/utils/dom.ts"],"sourcesContent":["import { MutableRefObject } from 'react';\nimport { prefix } from '@/constant';\n\nexport type BasicTarget<T = HTMLElement> =\n | (() => T | null)\n | T\n | null\n | MutableRefObject<T | null | undefined>;\n\ntype TargetElement = HTMLElement | Element | Document | Window;\n\nexport function getTargetElement(\n target?: BasicTarget<TargetElement>,\n defaultElement?: TargetElement,\n): TargetElement | undefined | null {\n if (!target) {\n return defaultElement;\n }\n\n let targetElement: TargetElement | undefined | null;\n\n if (typeof target === 'function') {\n // TODO. Maybe the new version of typescript is not allowed.\n // @ts-ignore\n targetElement = target();\n } else if ('current' in target) {\n targetElement = target.current;\n } else {\n targetElement = target;\n }\n\n return targetElement;\n}\n\n/**\n * Get class like BEM\n * @param elm\n * @param modify\n */\nexport const getClassName = (block: string, elm?: string, modify?: string) =>\n `${prefix}-${block}${elm ? '__' + elm : ''}${modify ? '__' + modify : ''}`;\n"],"names":[],"mappings":";;AAWO,SAAA,gBAAA,CACL,QACA,cACkC,EAAA;AAClC,EAAA,IAAI,CAAC,MAAQ,EAAA;AACX,IAAO,OAAA,cAAA,CAAA;AAAA,GAAA;AAGT,EAAI,IAAA,aAAA,CAAA;AAEJ,EAAI,IAAA,OAAO,WAAW,UAAY,EAAA;AAGhC,IAAgB,aAAA,GAAA,MAAA,EAAA,CAAA;AAAA,GAAA,MAAA,IACP,aAAa,MAAQ,EAAA;AAC9B,IAAA,aAAA,GAAgB,MAAO,CAAA,OAAA,CAAA;AAAA,GAClB,MAAA;AACL,IAAgB,aAAA,GAAA,MAAA,CAAA;AAAA,GAAA;AAGlB,EAAO,OAAA,aAAA,CAAA;AAAA,CAAA;AAQF,MAAM,YAAe,GAAA,CAAC,KAAe,EAAA,GAAA,EAAc,WACxD,CAAG,EAAA,MAAA,CAAA,CAAA,EAAU,KAAQ,CAAA,EAAA,GAAA,GAAM,IAAO,GAAA,GAAA,GAAM,EAAK,CAAA,EAAA,MAAA,GAAS,OAAO,MAAS,GAAA,EAAA,CAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/index.ts"],"sourcesContent":["import _ from 'lodash';\n\nexport const jsonParser = (content: any, defaultValue: any = {}) => {\n try {\n if (typeof content === 'string') {\n return JSON.parse(content);\n }\n return _.isObject(content) ? content : defaultValue;\n } catch (e) {\n return defaultValue;\n }\n};\n\nexport const getNewNode = <T>(newNode: T, oldNode: T): T => {\n return newNode || _.isNull(newNode) ? newNode : oldNode;\n};\n\nexport const classnames = (className: { [key: string]: boolean } | (string | undefined)[]) => {\n if (Array.isArray(className)) {\n return className.filter((i) => i).join(' ');\n }\n\n if (_.isObject(className)) {\n const classArray: string[] = [];\n Object.keys(className).forEach((key) => {\n if (className[key]) {\n classArray.push(key);\n }\n });\n\n return classArray.join(' ');\n }\n\n return '';\n};\n"],"names":[],"mappings":";;AAEO,MAAM,UAAa,GAAA,CAAC,OAAc,EAAA,YAAA,GAAoB,EAAO,KAAA;AAClE,EAAI,IAAA;AACF,IAAI,IAAA,OAAO,YAAY,QAAU,EAAA;AAC/B,MAAA,OAAO,KAAK,KAAM,CAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAEpB,IAAO,OAAA,CAAA,CAAE,QAAS,CAAA,OAAA,CAAA,GAAW,OAAU,GAAA,YAAA,CAAA;AAAA,GAAA,CAAA,OAChC,CAAP,EAAA;AACA,IAAO,OAAA,YAAA,CAAA;AAAA,GAAA;AAAA,EAAA;AAQE,MAAA,UAAA,GAAa,CAAC,SAAmE,KAAA;AAC5F,EAAI,IAAA,KAAA,CAAM,QAAQ,SAAY,CAAA,EAAA;AAC5B,IAAA,OAAO,SAAU,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,GAAG,IAAK,CAAA,GAAA,CAAA,CAAA;AAAA,GAAA;AAGzC,EAAI,IAAA,CAAA,CAAE,SAAS,SAAY,CAAA,EAAA;AACzB,IAAA,MAAM,UAAuB,GAAA,EAAA,CAAA;AAC7B,IAAA,MAAA,CAAO,IAAK,CAAA,SAAA,CAAA,CAAW,OAAQ,CAAA,CAAC,GAAQ,KAAA;AACtC,MAAA,IAAI,UAAU,GAAM,CAAA,EAAA;AAClB,QAAA,UAAA,CAAW,IAAK,CAAA,GAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAAA,CAAA,CAAA;AAIpB,IAAA,OAAO,WAAW,IAAK,CAAA,GAAA,CAAA,CAAA;AAAA,GAAA;AAGzB,EAAO,OAAA,EAAA,CAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/annotationOperation/index.tsx"],"sourcesContent":["import { store } from '@/index';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { message } from 'antd/es';\nimport _ from 'lodash';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { AppState } from 'src/store';\nimport { ImgAttributeState } from 'src/store/imgAttribute/types';\n\nimport { AppProps } from '@/App';\nimport FileError from '@/components/fileException/FileError';\nimport useSize from '@/hooks/useSize';\nimport { InitToolStyleConfig } from '@/store/toolStyle/actionCreators';\nimport { AnnotationEngine, ImgUtils } from '@labelbee/lb-annotation';\nimport { i18n } from '@labelbee/lb-utils';\nimport { IStepInfo } from '@/types/step';\nimport StepUtils from '@/utils/StepUtils';\n\ninterface IProps extends AppState, AppProps {\n imgAttribute: ImgAttributeState;\n imgIndex: number;\n annotationEngine: AnnotationEngine;\n loading: boolean;\n stepList: IStepInfo[];\n step: number;\n}\n\nconst AnnotationOperation: React.FC<IProps> = (props: IProps) => {\n const [, forceRender] = useState<number>(0);\n\n const {\n imgAttribute,\n toolStyle,\n toolInstance,\n annotationEngine,\n imgList,\n imgIndex,\n dataInjectionAtCreation,\n renderEnhance,\n customRenderStyle,\n stepList,\n step,\n drawLayerSlot,\n } = props;\n const [annotationPos, setAnnotationPos] = useState({ zoom: 1, currentPos: { x: 0, y: 0 } });\n const annotationRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const size = useSize(annotationRef);\n\n useEffect(() => {\n store.dispatch(InitToolStyleConfig());\n }, []);\n\n useEffect(() => {\n if (!annotationEngine) {\n return;\n }\n\n // 更改 toolInstance 内部国际化语言\n switch (i18n.language) {\n case 'cn':\n case 'en':\n annotationEngine.setLang(i18n.language);\n break;\n default: {\n //\n break;\n }\n }\n annotationEngine?.setDataInjectionAtCreation(dataInjectionAtCreation);\n annotationEngine?.setRenderEnhance(renderEnhance);\n if (customRenderStyle) {\n annotationEngine?.setCustomRenderStyle(customRenderStyle);\n }\n }, [annotationEngine, dataInjectionAtCreation, renderEnhance, customRenderStyle]);\n\n useEffect(() => {\n const renderZoom = (zoom: number, currentPos: { x: number; y: number }) => {\n setAnnotationPos({ zoom, currentPos });\n };\n\n const dragMove = (props: { currentPos: { x: number; y: number }; zoom: number }) => {\n setAnnotationPos(props);\n };\n\n if (toolInstance) {\n toolInstance.singleOn('messageError', (error: string) => {\n message.error(error);\n });\n\n toolInstance.singleOn('messageInfo', (info: string) => {\n message.info(info);\n });\n\n toolInstance.singleOn('changeAnnotationShow', () => {\n forceRender((s) => s + 1);\n });\n\n toolInstance.on('renderZoom', renderZoom);\n toolInstance.on('dragMove', dragMove);\n }\n\n return () => {\n if (toolInstance) {\n toolInstance.unbind('renderZoom', renderZoom);\n toolInstance.unbind('dragMove', dragMove);\n }\n };\n }, [toolInstance]);\n\n useEffect(() => {\n if (annotationEngine?.setImgAttribute) {\n annotationEngine.setImgAttribute(imgAttribute);\n } else {\n // Old version.\n toolInstance?.setImgAttribute?.(imgAttribute);\n }\n }, [imgAttribute, annotationEngine]);\n\n /** 样式同步 */\n useEffect(() => {\n if (toolInstance) {\n toolInstance.setStyle(toolStyle);\n }\n if (annotationEngine) {\n annotationEngine.setStyle(toolStyle);\n }\n }, [toolStyle]);\n\n /** 窗口大小监听 */\n useEffect(() => {\n if (toolInstance?.setSize) {\n toolInstance.setSize(size);\n }\n\n if (annotationEngine) {\n annotationEngine.setSize(size);\n }\n }, [size]);\n\n useEffect(() => {\n // Update StepList When it update by outside\n const currentStepInfo = StepUtils.getCurrentStepInfo(step, stepList);\n toolInstance?.setConfig(currentStepInfo.config);\n }, [stepList]);\n\n /**\n * 重新加载图片,避免网络问题导致的图片无法加载\n * @returns\n */\n const reloadImg = () => {\n const imgInfo = imgList?.[imgIndex];\n if (!imgInfo?.url) {\n return;\n }\n\n ImgUtils.load(imgInfo.url).then((imgNode) => {\n annotationEngine.setImgNode(imgNode as HTMLImageElement);\n });\n };\n\n return (\n <div ref={annotationRef} className='annotationOperation'>\n <div className='canvas' ref={containerRef} style={size} id='toolContainer'>\n {drawLayerSlot?.(annotationPos)}\n </div>\n {toolInstance?.isImgError === true && (\n <FileError\n {...size}\n reloadImage={reloadImg}\n backgroundColor='#e2e2e2'\n ignoreOffsetY={true}\n />\n )}\n </div>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n const annotationState = _.pickBy(state.annotation, (v, k) =>\n [\n 'imgList',\n 'imgIndex',\n 'stepList',\n 'step',\n 'toolInstance',\n 'annotationEngine',\n 'loading',\n ].includes(k),\n );\n return {\n imgAttribute: state.imgAttribute,\n toolStyle: state.toolStyle,\n ...annotationState,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n AnnotationOperation,\n);\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/annotationTips/index.tsx"],"sourcesContent":["/*\n * Annotation Tips Showing\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-05-11 17:15:30\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-05-12 19:34:32\n */\nimport React from 'react';\nimport { Tooltip } from 'antd';\nimport { prefix } from '@/constant';\n\ninterface IProps {\n tips?: string;\n path?: string;\n}\n\nconst AnnotationTips = ({ path, tips }: IProps) => {\n if (!path && !tips) {\n return null;\n }\n\n return (\n <div className={`${prefix}-tips`}>\n <Tooltip placement='bottomRight' title={tips}>\n <span className={`${prefix}-tips__leftContent`} title={tips}>\n {tips}\n </span>\n </Tooltip>\n <Tooltip placement='bottomRight' title={path}>\n <span className={`${prefix}-tips__path`}>{path}</span>\n </Tooltip>\n </div>\n );\n};\n\nexport default AnnotationTips;\n"],"names":[],"mappings":";;;;AAgBA,MAAM,cAAiB,GAAA,CAAC,CAAE,IAAA,EAAM,IAAmB,CAAA,KAAA;AACjD,EAAI,IAAA,CAAC,IAAQ,IAAA,CAAC,IAAM,EAAA;AAClB,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,WAAW,CAAG,EAAA,MAAA,CAAA,KAAA,CAAA;AAAA,GAAA,sCAChB,OAAD,EAAA;AAAA,IAAS,SAAU,EAAA,aAAA;AAAA,IAAc,KAAO,EAAA,IAAA;AAAA,GAAA,sCACrC,MAAD,EAAA;AAAA,IAAM,WAAW,CAAG,EAAA,MAAA,CAAA,kBAAA,CAAA;AAAA,IAA4B,KAAO,EAAA,IAAA;AAAA,GACpD,EAAA,IAAA,CAAA,CAAA,sCAGJ,OAAD,EAAA;AAAA,IAAS,SAAU,EAAA,aAAA;AAAA,IAAc,KAAO,EAAA,IAAA;AAAA,GAAA,sCACrC,MAAD,EAAA;AAAA,IAAM,WAAW,CAAG,EAAA,MAAA,CAAA,WAAA,CAAA;AAAA,GAAsB,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
@@ -0,0 +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 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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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/AnnotationText/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { message } from 'antd/es';\nimport TextAreaFormat from '@/views/MainView/sidebar/TextAreaFormat';\nimport { TextUtils } from '@/utils/TextUtils';\nimport { AppState } from '@/store';\nimport { GraphToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n}\n\nconst AnnotationText: React.FC<IProps> = ({ toolInstance }) => {\n const [, forceRender] = useState<number>(0);\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('selectedChange', () => {\n forceRender((s) => s + 1);\n });\n toolInstance.singleOn('updateTextAttribute', () => {\n // 文本属性的更新\n\n forceRender((s) => s + 1);\n });\n\n toolInstance.singleOn('messageError', (error: string) => {\n message.error(error);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const { config } = toolInstance;\n\n return (\n <div>\n {toolInstance?.config?.textConfigurable && toolInstance.selectedID && (\n <TextAreaFormat\n onChange={toolInstance.textChange}\n textValue={toolInstance.selectedText}\n checkString={TextUtils.checkString(config?.textCheckType, config?.customFormat)}\n textCheckType={config.textCheckType}\n />\n )}\n </div>\n );\n};\n\nfunction mapStateToProps(state: AppState) {\n return { toolInstance: state.annotation.toolInstance };\n}\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(AnnotationText);\n"],"names":[],"mappings":";;;;;;;AAaA,MAAM,cAAA,GAAmC,CAAC,CAAE,YAAmB,CAAA,KAAA;AAb/D,EAAA,IAAA,EAAA,CAAA;AAcE,EAAM,MAAA,GAAG,WAAA,CAAA,GAAe,QAAiB,CAAA,CAAA,CAAA,CAAA;AACzC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAc,EAAA;AAChB,MAAa,YAAA,CAAA,QAAA,CAAS,kBAAkB,MAAM;AAC5C,QAAY,WAAA,CAAA,CAAC,MAAM,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAEzB,MAAa,YAAA,CAAA,QAAA,CAAS,uBAAuB,MAAM;AAGjD,QAAY,WAAA,CAAA,CAAC,MAAM,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAGzB,MAAa,YAAA,CAAA,QAAA,CAAS,cAAgB,EAAA,CAAC,KAAkB,KAAA;AACvD,QAAA,OAAA,CAAQ,KAAM,CAAA,KAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EAGjB,CAAC,YAAA,CAAA,CAAA,CAAA;AAEJ,EAAA,IAAI,CAAC,YAAc,EAAA;AACjB,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,MAAM,CAAE,MAAW,CAAA,GAAA,YAAA,CAAA;AAEnB,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,IAAA,EACG,CAAc,CAAA,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,MAAA,KAAd,mBAAsB,gBAAoB,KAAA,YAAA,CAAa,UACtD,oBAAA,KAAA,CAAA,aAAA,CAAC,cAAD,EAAA;AAAA,IACE,UAAU,YAAa,CAAA,UAAA;AAAA,IACvB,WAAW,YAAa,CAAA,YAAA;AAAA,IACxB,WAAa,EAAA,SAAA,CAAU,WAAY,CAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,eAAe,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,YAAA,CAAA;AAAA,IAClE,eAAe,MAAO,CAAA,aAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAOhC,SAAA,eAAA,CAAyB,KAAiB,EAAA;AACxC,EAAO,OAAA,CAAE,YAAc,EAAA,KAAA,CAAM,UAAW,CAAA,YAAA,CAAA,CAAA;AAAA,CAAA;AAG1C,uBAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAAmB,CAAA,CAAA,CAAA,cAAA,CAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ClearIcon/index.tsx"],"sourcesContent":["import { Tooltip } from 'antd/es';\nimport React, { useState } from 'react';\n\n// 图片调整的刷子\nimport clearSmall from '@/assets/annotation/common/icon_clearSmall.svg';\n// import clearSmallA from '@//assets/annotation/common/icon_clearSmall_a.svg';\nimport { InitImgAttribute } from '@/store/imgAttribute/actionCreators';\nimport { store } from '@/index';\nimport clearSmallA from '@//assets/annotation/common/icon_clearSmall_a.svg';\nimport { useTranslation } from 'react-i18next';\n\nconst clearIcon = () => {\n const [hoverDelete, setHoverDelete] = useState(false);\n\n const clearAttribute = () => {\n store.dispatch(InitImgAttribute());\n };\n const { t } = useTranslation();\n\n return (\n <Tooltip placement='bottom' title={t('RestoreImageAttributes')}>\n <img\n onMouseEnter={() => setHoverDelete(true)}\n onMouseLeave={() => setHoverDelete(false)}\n style={{ marginLeft: 6 }}\n src={hoverDelete ? clearSmallA : clearSmall}\n onClick={(e) => {\n e.stopPropagation();\n clearAttribute();\n }}\n />\n </Tooltip>\n );\n};\n\nexport default clearIcon;\n"],"names":["clearSmallA","clearSmall"],"mappings":";;;;;;;;AAWA,MAAM,YAAY,MAAM;AACtB,EAAM,MAAA,CAAC,WAAa,EAAA,cAAA,CAAA,GAAkB,QAAS,CAAA,KAAA,CAAA,CAAA;AAE/C,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,KAAA,CAAM,QAAS,CAAA,gBAAA,EAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAEjB,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,2CACG,OAAD,EAAA;AAAA,IAAS,SAAU,EAAA,QAAA;AAAA,IAAS,OAAO,CAAE,CAAA,wBAAA,CAAA;AAAA,GAAA,sCAClC,KAAD,EAAA;AAAA,IACE,YAAA,EAAc,MAAM,cAAe,CAAA,IAAA,CAAA;AAAA,IACnC,YAAA,EAAc,MAAM,cAAe,CAAA,KAAA,CAAA;AAAA,IACnC,KAAA,EAAO,CAAE,UAAY,EAAA,CAAA,CAAA;AAAA,IACrB,GAAA,EAAK,cAAcA,GAAc,GAAAC,KAAA;AAAA,IACjC,OAAA,EAAS,CAAC,CAAM,KAAA;AACd,MAAE,CAAA,CAAA,eAAA,EAAA,CAAA;AACF,MAAA,cAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionsConfirm.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/ActionsConfirm.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Col, Popconfirm } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport { prefix } from '@/constant';\n\nexport interface IOperationConfig {\n name: string;\n key: string;\n imgSvg: string | React.ReactElement;\n hoverSvg: string | React.ReactElement;\n onClick?: () => void;\n forbidConfirm?: boolean; // 是否禁止二次确认\n forbidOperation?: boolean; // 禁止操作,会有置灰操作(该部分由用户自己更改 ImgSvg 进行展示)\n}\n\n// 禁止的样式\nconst forbidStyle = {\n color: '#CCCCCC',\n};\n\nconst PopconfirmTitle = ({ info }: { info: IOperationConfig }) => {\n const { t } = useTranslation();\n if (info.key.startsWith('sure')) {\n return <div key={info.key}>{`${t('ConfirmTo')}${info.name.slice(0)}?`}</div>;\n }\n\n return <span>{info.name}</span>;\n};\n\nconst ActionIcon = ({ icon }: { icon: React.ReactElement | string }) => {\n if (typeof icon === 'string') {\n return <img width={23} height={25} src={icon} />;\n }\n return icon;\n};\n\nconst ShowIcon = ({ isHover, info }: { isHover: string | null; info: IOperationConfig }) => {\n const disabled = !!info.forbidOperation;\n\n const _isHover = info.key === isHover && !disabled;\n\n let textStyle = {\n color: _isHover ? '#666fff' : '',\n };\n\n if (disabled) {\n textStyle = forbidStyle;\n }\n\n return (\n <div\n style={{ cursor: disabled ? 'not-allowed' : 'default' }}\n onClick={() => info?.forbidConfirm && !disabled && info?.onClick?.()}\n >\n <div className='icon'>\n <ActionIcon icon={_isHover ? info.hoverSvg : info.imgSvg} />\n </div>\n <div className='toolName' style={textStyle}>\n {info.name}\n </div>\n </div>\n );\n};\n\nconst ActionsConfirm: React.FC<{ allOperation: IOperationConfig[] }> = ({ allOperation }) => {\n const ref = useRef<HTMLDivElement>(null);\n const [isHover, setHover] = useState<string | null>(null);\n const { t } = useTranslation();\n const annotationLength = Math.floor(24 / allOperation.length);\n\n return (\n <div className='generalOperation' ref={ref}>\n {allOperation.map((info, index) => (\n <Col span={annotationLength} key={index}>\n <div\n key={info.key}\n className='item'\n onMouseEnter={() => {\n setHover(info.key);\n }}\n onMouseLeave={() => {\n setHover(null);\n }}\n >\n {info.forbidConfirm ? (\n <ShowIcon info={info} isHover={isHover} />\n ) : (\n <Popconfirm\n title={<PopconfirmTitle info={info} />}\n placement='topRight'\n okText={t('Confirm')}\n cancelText={t('Cancel')}\n getPopupContainer={() => ref.current ?? document.body}\n onConfirm={info.onClick}\n overlayClassName={`${prefix}-pop-confirm`}\n >\n <div>\n <ShowIcon info={info} isHover={isHover} />\n </div>\n </Popconfirm>\n )}\n </div>\n </Col>\n ))}\n </div>\n );\n};\n\nexport default ActionsConfirm;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/index.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect, ConnectedComponent } from 'react-redux';\nimport { ToolInstance } from '@/store/annotation/types';\nimport StepUtils from '@/utils/StepUtils';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { AnnotationFileList, IFileItem } from '@/types/data';\nimport ActionsConfirm, { IOperationConfig } from './ActionsConfirm';\nimport useOperationList from './useOperationList';\nimport { LabelBeeContext } from '@/store/ctx';\nimport UnifyParamsSvg from '@/assets/annotation/pointCloudTool/unitAttribute.svg';\nimport UnifyParamsForbidSvg from '@/assets/annotation/pointCloudTool/unitAttributeForbid.svg';\nimport UnifyParamsHoverSvg from '@/assets/annotation/pointCloudTool/unitAttributeHover.svg';\nimport { useTranslation } from 'react-i18next';\nimport UnifyParamsModal from '../../../../components/pointCloudView/components/UnifyParamsModal';\nimport { useSingleBox } from '@/components/pointCloudView/hooks/useSingleBox';\nimport { composeResultByToolInstance } from '@/store/annotation/reducer';\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n\n return {\n toolInstance: state.annotation.toolInstance,\n stepInfo,\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n stepList: state.annotation.stepList,\n };\n};\ninterface IProps {\n toolInstance: ToolInstance;\n stepInfo: IStepInfo;\n imgList: AnnotationFileList;\n imgIndex: number;\n stepList: IStepInfo[];\n}\n\nconst GeneralOperation: React.FC<IProps> = ({ toolInstance, stepInfo }) => {\n const operationList = useOperationList(toolInstance);\n const config = jsonParser(stepInfo?.config);\n const allOperation: IOperationConfig[] = [operationList.empty];\n\n if (stepInfo?.dataSourceStep === 0) {\n allOperation.push(operationList.setValidity);\n }\n\n if (config?.copyBackwardResult) {\n allOperation.push(operationList.copyPrevious);\n }\n\n return <ActionsConfirm allOperation={allOperation} />;\n};\n\nexport const PointCloudOperation: ConnectedComponent<\n React.FC<IProps>,\n Omit<\n IProps & {\n children?: React.ReactNode;\n },\n 'toolInstance' | 'stepInfo' | 'imgList' | 'imgIndex' | 'stepList'\n >\n> = connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n ({ toolInstance, stepInfo, imgList, stepList, imgIndex }) => {\n const { t } = useTranslation();\n const { selectedBox } = useSingleBox();\n const operationList = useOperationList(toolInstance);\n const [isShowModal, setShowModal] = useState(false);\n const [composeImgList, setComposeImgList] = useState<IFileItem[]>([]);\n\n const config = jsonParser(stepInfo.config);\n\n let allOperation: IOperationConfig[] = [\n operationList.copyPrevious,\n operationList.empty,\n operationList.setValidity,\n ];\n\n if (config.trackConfigurable === true) {\n const forbidOperation = !selectedBox;\n const UnifyParams: IOperationConfig = {\n name: t('UnifyParams'),\n key: 'UnifyParams',\n imgSvg: forbidOperation ? UnifyParamsForbidSvg : UnifyParamsSvg,\n hoverSvg: UnifyParamsHoverSvg,\n onClick: () => {\n // TODO, The inner modal needs to use the newest ImgList\n setComposeImgList(composeResultByToolInstance({ toolInstance, imgList, imgIndex, stepList }))\n\n setShowModal(true);\n },\n forbidConfirm: true,\n forbidOperation: forbidOperation,\n };\n allOperation.unshift(UnifyParams);\n }\n\n const onCancel = useCallback(() => {\n setShowModal(false);\n }, []);\n\n const selectedBoxInfo = selectedBox?.info;\n\n return (\n <>\n <ActionsConfirm allOperation={allOperation} />\n <UnifyParamsModal\n id={selectedBoxInfo?.trackID}\n visible={isShowModal}\n onCancel={onCancel}\n config={config}\n imgList={composeImgList}\n />\n </>\n );\n },\n);\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(GeneralOperation);\n"],"names":["UnifyParamsForbidSvg","UnifyParamsSvg","UnifyParamsHoverSvg"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOperationList.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/useOperationList.tsx"],"sourcesContent":["import { IOperationConfig } from './ActionsConfirm';\nimport clearResultSvg from '@/assets/annotation/common/icon_clear.svg';\nimport clearResultASvg from '@/assets/annotation/common/icon_clear_a.svg';\nimport copyBackStepSvg from '@/assets/annotation/common/icon_invalid.svg';\nimport copyBackStepASvg from '@/assets/annotation/common/icon_invalid_a.svg';\nimport { StopOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\nimport React, { useMemo, useState } from 'react';\nimport { CopyBackWordResult } from '@/store/annotation/actionCreators';\nimport { store } from '@/index';\nimport { AppState } from '@/store';\nimport { useSelector } from '@/store/ctx';\n\n/**\n * Hooks for sidebar common operations' config\n * @param toolInstance\n * @returns\n */\nconst useOperationList = (toolInstance: any) => {\n const [updateNum, forceRender] = useState(0);\n const { t, i18n } = useTranslation();\n const { currentData } = useSelector((state: AppState) => {\n const { imgList, imgIndex } = state.annotation;\n\n return {\n currentData: imgList[imgIndex],\n };\n });\n\n const iconStyle = {\n height: '25px',\n lineHeight: '25px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n };\n\n /**\n * Empty current file result\n */\n const empty: IOperationConfig = {\n name: t('ClearLabel'),\n key: 'empty',\n imgSvg: clearResultSvg,\n hoverSvg: clearResultASvg,\n onClick: () => {\n toolInstance?.clearResult();\n },\n };\n\n /**\n * Set set validity for current file\n */\n const setValidity: IOperationConfig = {\n name: t(toolInstance?.valid === false ? 'SetAsValid' : 'SetAsInvalid'),\n key: 'setValidity',\n imgSvg: <StopOutlined style={iconStyle} />,\n hoverSvg: <StopOutlined style={{ color: '#666fff', ...iconStyle }} />,\n onClick: () => {\n toolInstance.setValid(!toolInstance.valid);\n setTimeout(() => {\n forceRender((v) => v + 1);\n });\n },\n };\n\n /**\n * Copy previous file result\n */\n const copyPrevious: IOperationConfig = {\n name: t('CopyThePrevious'),\n key: 'copyPrevious',\n imgSvg: copyBackStepSvg,\n hoverSvg: copyBackStepASvg,\n onClick: () => {\n store.dispatch(CopyBackWordResult());\n },\n };\n\n return useMemo(() => {\n return {\n empty,\n setValidity,\n copyPrevious,\n };\n }, [toolInstance, updateNum, currentData, i18n.language]);\n};\n\nexport default useOperationList;\n"],"names":["clearResultSvg","clearResultASvg","copyBackStepSvg","copyBackStepASvg"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBM,MAAA,gBAAA,GAAmB,CAAC,YAAsB,KAAA;AAC9C,EAAM,MAAA,CAAC,SAAW,EAAA,WAAA,CAAA,GAAe,QAAS,CAAA,CAAA,CAAA,CAAA;AAC1C,EAAM,MAAA,CAAE,GAAG,IAAS,CAAA,GAAA,cAAA,EAAA,CAAA;AACpB,EAAA,MAAM,CAAE,WAAA,CAAA,GAAgB,WAAY,CAAA,CAAC,KAAoB,KAAA;AACvD,IAAM,MAAA,CAAE,OAAS,EAAA,QAAA,CAAA,GAAa,KAAM,CAAA,UAAA,CAAA;AAEpC,IAAO,OAAA;AAAA,MACL,aAAa,OAAQ,CAAA,QAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAIzB,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,MAAQ,EAAA,MAAA;AAAA,IACR,UAAY,EAAA,MAAA;AAAA,IACZ,OAAS,EAAA,MAAA;AAAA,IACT,cAAgB,EAAA,QAAA;AAAA,IAChB,UAAY,EAAA,QAAA;AAAA,GAAA,CAAA;AAMd,EAAA,MAAM,KAA0B,GAAA;AAAA,IAC9B,MAAM,CAAE,CAAA,YAAA,CAAA;AAAA,IACR,GAAK,EAAA,OAAA;AAAA,IACL,MAAQ,EAAAA,GAAA;AAAA,IACR,QAAU,EAAAC,KAAA;AAAA,IACV,SAAS,MAAM;AACb,MAAc,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAOlB,EAAA,MAAM,WAAgC,GAAA;AAAA,IACpC,IAAM,EAAA,CAAA,CAAE,CAAc,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,KAAA,MAAU,QAAQ,YAAe,GAAA,cAAA,CAAA;AAAA,IACvD,GAAK,EAAA,aAAA;AAAA,IACL,MAAA,sCAAS,YAAD,EAAA;AAAA,MAAc,KAAO,EAAA,SAAA;AAAA,KAAA,CAAA;AAAA,IAC7B,QAAA,sCAAW,YAAD,EAAA;AAAA,MAAc,KAAA,EAAO,cAAE,CAAA,CAAA,KAAA,EAAO,SAAc,CAAA,EAAA,SAAA,CAAA;AAAA,KAAA,CAAA;AAAA,IACtD,SAAS,MAAM;AACb,MAAa,YAAA,CAAA,QAAA,CAAS,CAAC,YAAa,CAAA,KAAA,CAAA,CAAA;AACpC,MAAA,UAAA,CAAW,MAAM;AACf,QAAY,WAAA,CAAA,CAAC,MAAM,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAQ7B,EAAA,MAAM,YAAiC,GAAA;AAAA,IACrC,MAAM,CAAE,CAAA,iBAAA,CAAA;AAAA,IACR,GAAK,EAAA,cAAA;AAAA,IACL,MAAQ,EAAAC,KAAA;AAAA,IACR,QAAU,EAAAC,KAAA;AAAA,IACV,SAAS,MAAM;AACb,MAAA,KAAA,CAAM,QAAS,CAAA,kBAAA,EAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAInB,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAO,OAAA;AAAA,MACL,KAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,KAAA,CAAA;AAAA,GAAA,EAED,CAAC,YAAA,EAAc,SAAW,EAAA,WAAA,EAAa,IAAK,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ImgAttributeInfo/index.tsx"],"sourcesContent":["import { Col, Row, Slider, Switch, Input } from 'antd/es';\nimport { connect } from 'react-redux';\nimport { throttle } from 'lodash';\nimport React, { useEffect } from 'react';\nimport { ImgAttributeState } from '@/store/imgAttribute/types';\nimport ImgAttribute from '@/store/imgAttribute/actionCreators';\nimport { store } from '@/index';\nimport { LabelBeeContext } from '@/store/ctx';\n\nimport saturationSvg from '@/assets/annotation/image/saturation.svg';\nimport contrastSvg from '@/assets/annotation/image/contrast.svg';\nimport brightnessSvg from '@/assets/annotation/image/brightness.svg';\nimport ZoomUpSvg from '@/assets/attributeIcon/zoomUp.svg';\nimport originalPic from '@/assets/annotation/image/icon_yuantu.svg';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n imgAttribute: ImgAttributeState;\n}\n\nconst ImgAttributeInfo = (props: IProps) => {\n const {\n imgAttribute: { contrast, saturation, brightness, zoomRatio, isOriginalSize },\n } = props;\n\n const { t } = useTranslation();\n\n const imgAttributeChange = throttle(\n (payload: Partial<ImgAttributeState>) => {\n store.dispatch(ImgAttribute.UpdateImgAttribute(payload as ImgAttributeState));\n },\n 60,\n { trailing: true },\n );\n\n const imgAttributeInfo = [\n {\n name: 'Saturation',\n min: -100,\n max: 500,\n step: 2,\n onChange: (v: number) => imgAttributeChange({ saturation: v }),\n value: saturation,\n svg: saturationSvg,\n },\n {\n name: 'Contrast',\n min: -100,\n max: 300,\n step: 2,\n onChange: (v: number) => imgAttributeChange({ contrast: v }),\n value: contrast,\n svg: contrastSvg,\n },\n {\n name: 'Exposure',\n min: -100,\n max: 400,\n step: 2,\n onChange: (v: number) => imgAttributeChange({ brightness: v }),\n value: brightness,\n svg: brightnessSvg,\n },\n {\n name: 'ScreenRatio',\n min: 0.1,\n max: 10,\n step: 0.1,\n onChange: (v: number) => imgAttributeChange({ zoomRatio: v }),\n value: zoomRatio,\n svg: ZoomUpSvg,\n },\n ];\n\n useEffect(() => {\n return () => {\n store.dispatch(ImgAttribute.InitImgAttribute());\n };\n }, []);\n\n return (\n <div>\n {imgAttributeInfo.map((info: any, index: number) => (\n <div className='imgAttributeController' key={`option_${index}`}>\n <Row className='tools' style={{ padding: '0px 0' }}>\n <Col span={24}>\n <span className='singleTool'>\n <img width={12} height={12} src={info.svg} />\n <span className='toolName'>{t(info.name)}</span>\n </span>\n </Col>\n </Row>\n <Row>\n <Col span={20}>\n <Slider\n min={info.min}\n max={info.max}\n step={info.step}\n value={info.value}\n onChange={info.onChange}\n trackStyle={{ background: '#666fff' }}\n />\n </Col>\n <Col span={4}>\n <Input\n value={info.value}\n disabled\n style={{\n fontSize: 12,\n marginBottom: 23,\n padding: '0px 2px',\n textAlign: 'center',\n }}\n />\n </Col>\n </Row>\n </div>\n ))}\n <div className='imgAttributeController'>\n <Row className='tools' style={{ padding: '10px 0' }}>\n <Col span={18}>\n <span className='singleTool'>\n <img src={originalPic} width={16} style={{ marginTop: '-2px' }} />\n <span className='toolName'>{t('OriginalScale')}</span>\n </span>\n </Col>\n <Col>\n <Switch\n checked={isOriginalSize}\n onChange={(v: boolean) => imgAttributeChange({ isOriginalSize: v })}\n />\n </Col>\n </Row>\n </div>\n </div>\n );\n};\n\nfunction mapStateToProps({ imgAttribute }: any) {\n return { imgAttribute };\n}\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(ImgAttributeInfo);\n"],"names":["saturationSvg","contrastSvg","brightnessSvg","ZoomUpSvg","originalPic"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.tsx"],"sourcesContent":["import { AppState } from '@/store';\nimport { BatchUpdateTrackID } from '@/store/annotation/actionCreators';\nimport { composeResultByToolInstance } from '@/store/annotation/reducer';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { LabelBeeContext, useDispatch } from '@/store/ctx';\nimport { AnnotationFileList } from '@/types/data';\nimport { IStepInfo } from '@/types/step';\nimport { Form, InputNumber, Modal } from 'antd';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\n\nconst layout = {\n labelCol: { span: 8 },\n wrapperCol: { span: 16 },\n};\n\n/**\n * 检查当前数字是否为有效数字\n * @param value\n * @param nonZero 是否包括 0\n * @returns\n */\nexport const isInvalidNumber = (value: any, nonZero = false) => {\n const intValue = Number(value);\n if (typeof value === 'undefined' || intValue < 0 || isNaN(intValue)) {\n return true;\n }\n if (nonZero === true && intValue === 0) {\n return true;\n }\n return false;\n};\n\ninterface IProps {\n id: number;\n toolInstance: ToolInstance;\n imgList: AnnotationFileList;\n imgIndex: number;\n stepList: IStepInfo[];\n}\n\nconst inputStyle = {\n width: '80px',\n};\n\nconst BatchUpdateModal = ({ id, stepList, imgList, imgIndex, toolInstance }: IProps) => {\n const dispatch = useDispatch();\n const [visible, setVisible] = useState(false);\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n const onFinish = (values: any) => {\n // New ImgList without UpdateData\n dispatch(\n BatchUpdateTrackID({\n id,\n newID: values.newID,\n rangeIndex: [values.prevPage - 1, values.nextPage - 1],\n // TODO: Not to submit result, just to compose result.\n imgList: composeResultByToolInstance({ toolInstance, imgList, imgIndex, stepList }),\n }),\n );\n setVisible(false);\n };\n\n const onCancel = () => setVisible(false);\n\n const onOk = () => form.submit();\n const defaultNumberRules = [{ required: true, message: t('PositiveIntegerCheck') }];\n\n return (\n <>\n <a style={{ color: '#666FFF' }} onClick={() => setVisible(true)}>\n {t('BatchUpdateText')}\n </a>\n <Modal\n title={t('BatchUpdateTrackID')}\n visible={visible}\n onCancel={onCancel}\n onOk={onOk}\n wrapClassName='labelbee-custom-modal'\n >\n <Form {...layout} form={form} onFinish={onFinish}>\n <Form.Item name='id' label={t('CurrentBoxTrackIDs')}>\n {id}\n </Form.Item>\n\n <Form.Item name='newID' label={t('TrackIDUnifyAs')} rules={defaultNumberRules}>\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <Form.Item label={t('UnifyTrackIDRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='prevPage'\n noStyle={true}\n >\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n textAlign: 'center',\n }}\n >\n -\n </span>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='nextPage'\n noStyle={true}\n >\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '40x',\n marginLeft: '10px',\n textAlign: 'center',\n }}\n >\n {t('Page')}\n </span>\n </Form.Item>\n </Form>\n </Modal>\n </>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation.toolInstance,\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n stepList: state.annotation.stepList,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(BatchUpdateModal);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import e,{useContext as I,useState as C,useEffect as B}from"react";import{EditFilled as w}from"@ant-design/icons";import{ToolIcons as L}from"../ToolIcons.js";import{cTool as j}from"@labelbee/lb-annotation";import{PointCloudContext as b}from"../../../../components/pointCloudView/PointCloudContext.js";import{Divider as E,Tag as _,Input as A,Select as T,message as v}from"antd";import F from"../../../../utils/StepUtils.js";import{connect as V}from"react-redux";import{jsonParser as N}from"../../../../utils/index.js";import{useStatus as U}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as h}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as k}from"react-i18next";import{LabelBeeContext as M}from"../../../../store/ctx.js";import z from"./components/batchUpdateModal/index.js";import{PointCloudUtils as W}from"@labelbee/lb-utils";import P from"../../../../components/attributeList/index.js";import{useAttribute as O}from"../../../../components/pointCloudView/hooks/useAttribute.js";const R=({imgList:n,imgIndex:u})=>{const c=I(b),[a,m]=C([]),{t:i}=k();B(()=>{const r=n;let o=new Map;m(W.getAllPointCloudResult({imgList:r,extraBoxList:f,ignoreIndexList:[u]}).filter(l=>!l.trackID||o.get(l.trackID)?!1:(o.set(l.trackID,!0),!0)).sort((l,s)=>{var d,t;const x=(d=l==null?void 0:l.trackID)!=null?d:0,g=(t=s==null?void 0:s.trackID)!=null?t:0;return x-g}).map(l=>{var s;return(s=l==null?void 0:l.trackID)!=null?s:0}))},[c.pointCloudBoxList,n]);const{pointCloudBoxList:f}=c;return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:16}},i("AllTrackIDs")),e.createElement("div",null,a.map(r=>e.createElement(_,{color:"#F3F4FF",key:r,style:{color:"#666",marginBottom:8}},r))))},$=()=>{const[n,u]=C(!1),{pointCloudBoxList:c}=I(b),{selectedBox:a,updateSelectedBox:m}=h(),[i,f]=C(""),{t:r}=k(),o=a==null?void 0:a.info.trackID,l=d=>!!c.find(x=>x.trackID===d&&x.id!==(a==null?void 0:a.info.id)),s=(d=!1)=>{const t=parseInt(i,10);if(d&&u(!1),isNaN(t)){v.error(r("PositiveIntegerCheck"));return}if(i.indexOf(".")>-1){v.error(r("NotAllowDecimalPointsInTrackID"));return}if(l(t)){v.error(r("DuplicateTrackIDsExist"));return}if(!(t>0)){v.error(r("PositiveIntegerCheck"));return}m({trackID:t})};return B(()=>{u(!1)},[o]),e.createElement("div",{style:{padding:24}},e.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},e.createElement("span",null,r("CurrentBoxTrackIDs")),o&&e.createElement(z,{id:o})),e.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},n&&o?e.createElement(A,{defaultValue:o,onChange:d=>{f(d.target.value)},disabled:!o,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):e.createElement("span",null,o),e.createElement(w,{style:{color:"#999",marginLeft:16,cursor:typeof o!="undefined"?"pointer":"not-allowed"},onClick:()=>{o&&u(!n)}})))},q=({attributeList:n,subAttributeList:u,toolInstance:c})=>{const{selectedBox:a}=h(),m=I(b),{t:i}=k(),{defaultAttribute:f}=O(),r={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},o={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},l=t=>{c.setDefaultAttribute(t)},s=(t,x)=>{c.setSubAttribute(t,x)},d=n.map(t=>({label:t.key,value:t.value,color:t==null?void 0:t.color}));return e.createElement("div",null,e.createElement("div",{style:r},i("Attribute")),e.createElement(P,{list:d,forbidDefault:!0,selectedAttribute:f!=null?f:"",attributeChanged:t=>l(t)}),e.createElement(E,{style:{margin:0}}),a&&e.createElement(e.Fragment,null,u.map(t=>{var x,g,y,D,S;return(t==null?void 0:t.subSelected)&&e.createElement("div",{style:{marginTop:12},key:t.value},e.createElement("div",{style:o},i("SubAttribute"),"-",t.key),((x=t.subSelected)==null?void 0:x.length)<5?e.createElement(P,{list:t.subSelected.map(p=>({label:p.key,value:p.value})),selectedAttribute:(y=(g=m.selectedPointCloudBox)==null?void 0:g.subAttribute)==null?void 0:y[t.value],num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:p=>s(t.value,p),style:{marginBottom:12}}):e.createElement(T,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(S=(D=m.selectedPointCloudBox)==null?void 0:D.subAttribute)==null?void 0:S[t.value],placeholder:i("PleaseSelect"),onChange:p=>s(t.value,p),allowClear:!0},t.subSelected.map(p=>e.createElement(T.Option,{key:p.value,value:p.value},p.key))),e.createElement(E,{style:{margin:0}}))})))},G=({stepInfo:n,toolInstance:u,imgList:c,imgIndex:a})=>{var m,i;const{updatePointCloudPattern:f,pointCloudPattern:r}=U(),o=N(n.config),l=(m=o==null?void 0:o.attributeList)!=null?m:[],s=(o==null?void 0:o.secondaryAttributeConfigurable)===!0?(i=o==null?void 0:o.inputList)!=null?i:[]:[];return e.createElement(e.Fragment,null,e.createElement(L,{toolName:j.EPointCloudName.PointCloud,selectedToolName:r,onChange:d=>f==null?void 0:f(d)}),(o==null?void 0:o.trackConfigurable)===!0&&e.createElement(e.Fragment,null,e.createElement(R,{imgList:c,imgIndex:a}),e.createElement($,null),e.createElement(E,{style:{margin:0}})),e.createElement(q,{toolInstance:u,attributeList:l,subAttributeList:s}))},H=n=>{var u,c,a;const m=F.getCurrentStepInfo((u=n.annotation)==null?void 0:u.step,(c=n.annotation)==null?void 0:c.stepList),i=(a=n.annotation)==null?void 0:a.toolInstance;return{stepInfo:m,toolInstance:i,imgList:n.annotation.imgList,imgIndex:n.annotation.imgIndex}};var J=V(H,null,null,{context:M})(G);export{J as default};
1
+ import e,{useContext as I,useState as C,useEffect as B}from"react";import{EditFilled as w}from"@ant-design/icons";import{ToolIcons as L}from"../ToolIcons.js";import{cTool as j}from"@labelbee/lb-annotation";import{PointCloudContext as b}from"../../../../components/pointCloudView/PointCloudContext.js";import{Divider as E,Tag as _,Input as A,Select as T,message as v}from"antd";import F from"../../../../utils/StepUtils.js";import{connect as V}from"react-redux";import{jsonParser as N}from"../../../../utils/index.js";import{useStatus as U}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as h}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as k}from"react-i18next";import{LabelBeeContext as M}from"../../../../store/ctx.js";import z from"./components/batchUpdateModal/index.js";import{PointCloudUtils as W}from"@labelbee/lb-utils";import P from"../../../../components/attributeList/index.js";import{useAttribute as O}from"../../../../components/pointCloudView/hooks/useAttribute.js";const R=({imgList:n,imgIndex:u})=>{const c=I(b),[a,m]=C([]),{t:i}=k();B(()=>{const r=n;let o=new Map;m(W.getAllPointCloudResult({imgList:r,extraBoxList:f,ignoreIndexList:[u]}).filter(l=>!l.trackID||o.get(l.trackID)?!1:(o.set(l.trackID,!0),!0)).sort((l,s)=>{var d,t;const x=(d=l==null?void 0:l.trackID)!=null?d:0,g=(t=s==null?void 0:s.trackID)!=null?t:0;return x-g}).map(l=>{var s;return(s=l==null?void 0:l.trackID)!=null?s:0}))},[c.pointCloudBoxList,n]);const{pointCloudBoxList:f}=c;return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:16}},i("AllTrackIDs")),e.createElement("div",null,a.map(r=>e.createElement(_,{color:"#F3F4FF",key:r,style:{color:"#666",marginBottom:8}},r))))},$=()=>{const[n,u]=C(!1),{pointCloudBoxList:c}=I(b),{selectedBox:a,updateSelectedBox:m}=h(),[i,f]=C(""),{t:r}=k(),o=a==null?void 0:a.info.trackID,l=d=>!!c.find(x=>x.trackID===d&&x.id!==(a==null?void 0:a.info.id)),s=(d=!1)=>{const t=parseInt(i,10);if(d&&u(!1),isNaN(t)){v.error(r("PositiveIntegerCheck"));return}if(i.indexOf(".")>-1){v.error(r("NotAllowDecimalPointsInTrackID"));return}if(l(t)){v.error(r("DuplicateTrackIDsExist"));return}if(!(t>0)){v.error(r("PositiveIntegerCheck"));return}m({trackID:t})};return B(()=>{u(!1)},[o]),e.createElement("div",{style:{padding:24}},e.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},e.createElement("span",null,r("CurrentBoxTrackIDs")),o&&e.createElement(z,{id:o})),e.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},n&&o?e.createElement(A,{defaultValue:o,onChange:d=>{f(d.target.value)},disabled:!o,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):e.createElement("span",null,o),e.createElement(w,{style:{color:"#999",marginLeft:16,cursor:typeof o!="undefined"?"pointer":"not-allowed"},onClick:()=>{o&&u(!n)}})))},q=({attributeList:n,subAttributeList:u,toolInstance:c})=>{const{selectedBox:a}=h(),m=I(b),{t:i}=k(),{defaultAttribute:f}=O(),r={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},o={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},l=t=>{c.setDefaultAttribute(t)},s=(t,x)=>{c.setSubAttribute(t,x)},d=n.map(t=>({label:t.key,value:t.value,color:t==null?void 0:t.color}));return e.createElement("div",null,e.createElement("div",{style:r},i("Attribute")),e.createElement(P,{list:d,forbidDefault:!0,selectedAttribute:f!=null?f:"",attributeChanged:t=>l(t)}),e.createElement(E,{style:{margin:0}}),a&&e.createElement(e.Fragment,null,u.map(t=>{var x,g,y,D,S;return(t==null?void 0:t.subSelected)&&e.createElement("div",{style:{marginTop:12},key:t.value},e.createElement("div",{style:o},i("SubAttribute"),"-",t.key),((x=t.subSelected)==null?void 0:x.length)<5?e.createElement(P,{list:t.subSelected.map(p=>({label:p.key,value:p.value})),selectedAttribute:(y=(g=m.selectedPointCloudBox)==null?void 0:g.subAttribute)==null?void 0:y[t.value],num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:p=>s(t.value,p),style:{marginBottom:12}}):e.createElement(T,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(S=(D=m.selectedPointCloudBox)==null?void 0:D.subAttribute)==null?void 0:S[t.value],placeholder:i("PleaseSelect"),onChange:p=>s(t.value,p),allowClear:!0},t.subSelected.map(p=>e.createElement(T.Option,{key:p.value,value:p.value},p.key))),e.createElement(E,{style:{margin:0}}))})))},G=({stepInfo:n,toolInstance:u,imgList:c,imgIndex:a})=>{var m,i;const{updatePointCloudPattern:f,pointCloudPattern:r}=U(),o=N(n.config),l=(m=o==null?void 0:o.attributeList)!=null?m:[],s=(o==null?void 0:o.secondaryAttributeConfigurable)===!0?(i=o==null?void 0:o.inputList)!=null?i:[]:[];return e.createElement(e.Fragment,null,e.createElement(L,{toolName:j.EPointCloudName.PointCloud,selectedToolName:r,onChange:d=>f==null?void 0:f(d)}),e.createElement(q,{toolInstance:u,attributeList:l,subAttributeList:s}),(o==null?void 0:o.trackConfigurable)===!0&&e.createElement(e.Fragment,null,e.createElement($,null),e.createElement(E,{style:{margin:0}}),e.createElement(R,{imgList:c,imgIndex:a})))},H=n=>{var u,c,a;const m=F.getCurrentStepInfo((u=n.annotation)==null?void 0:u.step,(c=n.annotation)==null?void 0:c.stepList),i=(a=n.annotation)==null?void 0:a.toolInstance;return{stepInfo:m,toolInstance:i,imgList:n.annotation.imgList,imgIndex:n.annotation.imgIndex}};var J=V(H,null,null,{context:M})(G);export{J as default};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/index.tsx"],"sourcesContent":["import React, { useContext, useState, useEffect } from 'react';\nimport { EditFilled } from '@ant-design/icons';\nimport { ToolIcons } from '../ToolIcons';\nimport { cTool } from '@labelbee/lb-annotation';\nimport { PointCloudContext } from '@/components/pointCloudView/PointCloudContext';\nimport { Select, Tag, message, Input, Divider } from 'antd';\nimport { AppState } from '@/store';\nimport StepUtils from '@/utils/StepUtils';\nimport { connect } from 'react-redux';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { ICustomToolInstance } from '@/hooks/annotation';\nimport { useStatus } from '@/components/pointCloudView/hooks/useStatus';\nimport { useSingleBox } from '@/components/pointCloudView/hooks/useSingleBox';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\nimport BatchUpdateModal from './components/batchUpdateModal';\nimport { IFileItem } from '@/types/data';\nimport { PointCloudUtils } from '@labelbee/lb-utils';\nimport AttributeList from '@/components/attributeList';\nimport { IInputList } from '@/types/main';\nimport { useAttribute } from '@/components/pointCloudView/hooks/useAttribute';\n\ninterface IProps {\n stepInfo: IStepInfo;\n toolInstance: ICustomToolInstance; // Created by useCustomToolInstance.\n imgList: IFileItem[];\n imgIndex: number;\n}\n\n// Temporarily hidden, this feature does not support the function for the time being.\nconst AnnotatedBox = ({ imgList, imgIndex }: { imgList: IFileItem[]; imgIndex: number }) => {\n const ptCtx = useContext(PointCloudContext);\n const [showIDs, setShowIds] = useState<number[]>([]);\n const { t } = useTranslation();\n\n useEffect(() => {\n const newImgList = imgList as Array<{ result: string }>;\n let trackMap = new Map();\n setShowIds(\n PointCloudUtils.getAllPointCloudResult({\n imgList: newImgList,\n extraBoxList: pointCloudBoxList,\n ignoreIndexList: [imgIndex],\n })\n .filter((v) => {\n if (!v.trackID) {\n return false;\n }\n\n if (trackMap.get(v.trackID)) {\n return false;\n }\n trackMap.set(v.trackID, true);\n return true;\n })\n .sort((a, b) => {\n const aTrackID = a?.trackID ?? 0;\n const bTrackID = b?.trackID ?? 0;\n\n return aTrackID - bTrackID;\n })\n .map((v) => v?.trackID ?? 0),\n );\n }, [ptCtx.pointCloudBoxList, imgList]);\n\n const { pointCloudBoxList } = ptCtx;\n\n return (\n <div style={{ padding: 24, borderBottom: '1px solid #eee' }}>\n <div style={{ marginBottom: 16 }}>{t('AllTrackIDs')}</div>\n <div>\n {showIDs.map((id) => (\n <Tag color='#F3F4FF' key={id} style={{ color: '#666', marginBottom: 8 }}>\n {id}\n </Tag>\n ))}\n </div>\n </div>\n );\n};\n\nconst BoxTrackIDInput = () => {\n const [isEdit, setIsEdit] = useState(false);\n const { pointCloudBoxList } = useContext(PointCloudContext);\n const { selectedBox, updateSelectedBox } = useSingleBox();\n const [inputValue, setInputValue] = useState('');\n const { t } = useTranslation();\n\n const selectedBoxTrackID = selectedBox?.info.trackID;\n\n const hasDuplicateTrackID = (trackID: number) => {\n const duplicateBox = pointCloudBoxList.find(\n (v) => v.trackID === trackID && v.id !== selectedBox?.info.id,\n );\n return !!duplicateBox;\n };\n\n const applyInputValue = (isBlurEvent = false) => {\n const newTrackID = parseInt(inputValue, 10);\n\n if (isBlurEvent) {\n setIsEdit(false);\n }\n\n if (isNaN(newTrackID)) {\n message.error(t('PositiveIntegerCheck'));\n return;\n }\n\n if (inputValue.indexOf('.') > -1) {\n message.error(t('NotAllowDecimalPointsInTrackID'));\n return;\n }\n\n if (hasDuplicateTrackID(newTrackID)) {\n message.error(t('DuplicateTrackIDsExist'));\n return;\n }\n\n if (!(newTrackID > 0)) {\n message.error(t('PositiveIntegerCheck'));\n return;\n }\n\n updateSelectedBox({ trackID: newTrackID });\n };\n\n useEffect(() => {\n setIsEdit(false);\n }, [selectedBoxTrackID]);\n\n return (\n <div style={{ padding: 24 }}>\n <div\n style={{\n marginBottom: 16,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <span>{t('CurrentBoxTrackIDs')}</span>\n {selectedBoxTrackID && <BatchUpdateModal id={selectedBoxTrackID} />}\n </div>\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n {isEdit && selectedBoxTrackID ? (\n <Input\n defaultValue={selectedBoxTrackID}\n onChange={(e) => {\n setInputValue(e.target.value);\n }}\n disabled={!selectedBoxTrackID}\n size='small'\n onBlur={() => {\n applyInputValue();\n }}\n onPressEnter={() => {\n applyInputValue(true);\n }}\n />\n ) : (\n <span>{selectedBoxTrackID}</span>\n )}\n <EditFilled\n style={{\n color: '#999',\n marginLeft: 16,\n cursor: typeof selectedBoxTrackID !== 'undefined' ? 'pointer' : 'not-allowed',\n }}\n onClick={() => {\n if (selectedBoxTrackID) {\n setIsEdit(!isEdit);\n }\n }}\n />\n </div>\n </div>\n );\n};\n\nconst AttributeUpdater = ({\n attributeList,\n subAttributeList,\n toolInstance,\n}: {\n toolInstance: ICustomToolInstance;\n attributeList: any[]; // TODO\n subAttributeList: any[]; // TODO\n}) => {\n const { selectedBox } = useSingleBox();\n const ptx = useContext(PointCloudContext);\n const { t } = useTranslation();\n const { defaultAttribute } = useAttribute();\n\n const titleStyle = {\n fontWeight: 500,\n fontSize: 14,\n margin: '12px 0 8px 20px',\n };\n\n const subTitleStyle = {\n margin: '12px 20px 8px',\n fontSize: 14,\n fontWeight: 500,\n wordWrap: 'break-word' as any, // WordWrap Type ?\n };\n\n const setAttribute = (attribute: string) => {\n toolInstance.setDefaultAttribute(attribute);\n };\n\n const setSubAttribute = (key: string, value: string) => {\n toolInstance.setSubAttribute(key, value);\n };\n\n const list = attributeList.map((i: any) => ({\n label: i.key,\n value: i.value,\n color: i?.color,\n }));\n\n return (\n <div>\n <div style={titleStyle}>{t('Attribute')}</div>\n <AttributeList\n list={list}\n forbidDefault={true}\n selectedAttribute={defaultAttribute ?? ''}\n attributeChanged={(attribute: string) => setAttribute(attribute)}\n />\n <Divider style={{ margin: 0 }} />\n {selectedBox && (\n <>\n {subAttributeList.map(\n (subAttribute) =>\n subAttribute?.subSelected && (\n <div style={{ marginTop: 12 }} key={subAttribute.value}>\n <div style={subTitleStyle}>\n {t('SubAttribute')}-{subAttribute.key}\n </div>\n {subAttribute.subSelected?.length < 5 ? (\n <AttributeList\n list={subAttribute.subSelected.map((v: IInputList) => ({\n label: v.key,\n value: v.value,\n }))}\n selectedAttribute={\n ptx.selectedPointCloudBox?.subAttribute?.[subAttribute.value]\n }\n num='-'\n forbidColor={true}\n forbidDefault={true}\n attributeChanged={(value) => setSubAttribute(subAttribute.value, value)}\n style={{ marginBottom: 12 }}\n />\n ) : (\n <Select\n style={{ margin: '0px 21px 17px 16px', width: '87%' }}\n value={ptx.selectedPointCloudBox?.subAttribute?.[subAttribute.value]}\n placeholder={t('PleaseSelect')}\n onChange={(value) => setSubAttribute(subAttribute.value, value)}\n allowClear={true}\n >\n {subAttribute.subSelected.map((sub: any) => (\n <Select.Option key={sub.value} value={sub.value}>\n {sub.key}\n </Select.Option>\n ))}\n </Select>\n )}\n <Divider style={{ margin: 0 }} />\n </div>\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\nconst PointCloudToolSidebar: React.FC<IProps> = ({ stepInfo, toolInstance, imgList, imgIndex }) => {\n const { updatePointCloudPattern, pointCloudPattern } = useStatus();\n\n const config = jsonParser(stepInfo.config);\n const attributeList = config?.attributeList ?? [];\n const subAttributeList =\n config?.secondaryAttributeConfigurable === true ? config?.inputList ?? [] : [];\n\n return (\n <>\n <ToolIcons\n toolName={cTool.EPointCloudName.PointCloud}\n selectedToolName={pointCloudPattern}\n onChange={(v) => updatePointCloudPattern?.(v)}\n />\n <AttributeUpdater\n toolInstance={toolInstance}\n attributeList={attributeList}\n subAttributeList={subAttributeList}\n />\n {config?.trackConfigurable === true && (\n <>\n <BoxTrackIDInput />\n <Divider style={{ margin: 0 }} />\n <AnnotatedBox imgList={imgList} imgIndex={imgIndex} />\n </>\n )}\n </>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n const toolInstance = state.annotation?.toolInstance;\n\n return {\n stepInfo,\n toolInstance,\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloudToolSidebar,\n);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA+BA,MAAM,YAAe,GAAA,CAAC,CAAE,OAAA,EAAS,QAA2D,CAAA,KAAA;AAC1F,EAAA,MAAM,QAAQ,UAAW,CAAA,iBAAA,CAAA,CAAA;AACzB,EAAM,MAAA,CAAC,OAAS,EAAA,UAAA,CAAA,GAAc,QAAmB,CAAA,EAAA,CAAA,CAAA;AACjD,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAa,GAAA,OAAA,CAAA;AACnB,IAAA,IAAI,WAAW,IAAI,GAAA,EAAA,CAAA;AACnB,IAAA,UAAA,CACE,gBAAgB,sBAAuB,CAAA;AAAA,MACrC,OAAS,EAAA,UAAA;AAAA,MACT,YAAc,EAAA,iBAAA;AAAA,MACd,iBAAiB,CAAC,QAAA,CAAA;AAAA,KAEjB,CAAA,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA;AACb,MAAI,IAAA,CAAC,EAAE,OAAS,EAAA;AACd,QAAO,OAAA,KAAA,CAAA;AAAA,OAAA;AAGT,MAAI,IAAA,QAAA,CAAS,GAAI,CAAA,CAAA,CAAE,OAAU,CAAA,EAAA;AAC3B,QAAO,OAAA,KAAA,CAAA;AAAA,OAAA;AAET,MAAS,QAAA,CAAA,GAAA,CAAI,EAAE,OAAS,EAAA,IAAA,CAAA,CAAA;AACxB,MAAO,OAAA,IAAA,CAAA;AAAA,KAER,CAAA,CAAA,IAAA,CAAK,CAAC,CAAA,EAAG,CAAM,KAAA;AAxDxB,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAyDU,MAAM,MAAA,QAAA,GAAW,CAAG,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAA,OAAA,KAAH,IAAc,GAAA,EAAA,GAAA,CAAA,CAAA;AAC/B,MAAM,MAAA,QAAA,GAAW,CAAG,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAA,OAAA,KAAH,IAAc,GAAA,EAAA,GAAA,CAAA,CAAA;AAE/B,MAAA,OAAO,QAAW,GAAA,QAAA,CAAA;AAAA,KAEnB,CAAA,CAAA,GAAA,CAAI,CAAC,CAAG,KAAA;AA9DjB,MAAA,IAAA,EAAA,CAAA;AA8DoB,MAAA,OAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,YAAH,IAAc,GAAA,EAAA,GAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAE7B,EAAA,CAAC,MAAM,iBAAmB,EAAA,OAAA,CAAA,CAAA,CAAA;AAE7B,EAAA,MAAM,CAAE,iBAAsB,CAAA,GAAA,KAAA,CAAA;AAE9B,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,KAAO,EAAA,CAAE,OAAS,EAAA,EAAA,EAAI,YAAc,EAAA,gBAAA,CAAA;AAAA,GAAA,sCACtC,KAAD,EAAA;AAAA,IAAK,KAAA,EAAO,CAAE,YAAc,EAAA,EAAA,CAAA;AAAA,GAAO,EAAA,CAAA,CAAE,aACrC,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,IAAA,EACG,QAAQ,GAAI,CAAA,CAAC,EACZ,qBAAA,KAAA,CAAA,aAAA,CAAC,GAAD,EAAA;AAAA,IAAK,KAAM,EAAA,SAAA;AAAA,IAAU,GAAK,EAAA,EAAA;AAAA,IAAI,KAAO,EAAA,CAAE,KAAO,EAAA,MAAA,EAAQ,YAAc,EAAA,CAAA,CAAA;AAAA,GACjE,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAQb,MAAM,kBAAkB,MAAM;AAC5B,EAAM,MAAA,CAAC,MAAQ,EAAA,SAAA,CAAA,GAAa,QAAS,CAAA,KAAA,CAAA,CAAA;AACrC,EAAM,MAAA,CAAE,qBAAsB,UAAW,CAAA,iBAAA,CAAA,CAAA;AACzC,EAAM,MAAA,CAAE,aAAa,iBAAsB,CAAA,GAAA,YAAA,EAAA,CAAA;AAC3C,EAAM,MAAA,CAAC,UAAY,EAAA,aAAA,CAAA,GAAiB,QAAS,CAAA,EAAA,CAAA,CAAA;AAC7C,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAM,MAAA,kBAAA,GAAqB,2CAAa,IAAK,CAAA,OAAA,CAAA;AAE7C,EAAM,MAAA,mBAAA,GAAsB,CAAC,OAAoB,KAAA;AAC/C,IAAM,MAAA,YAAA,GAAe,iBAAkB,CAAA,IAAA,CACrC,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,KAAY,OAAW,IAAA,CAAA,CAAE,EAAO,MAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,IAAK,CAAA,EAAA,CAAA,CAAA,CAAA;AAE7D,IAAA,OAAO,CAAC,CAAC,YAAA,CAAA;AAAA,GAAA,CAAA;AAGX,EAAM,MAAA,eAAA,GAAkB,CAAC,WAAA,GAAc,KAAU,KAAA;AAC/C,IAAM,MAAA,UAAA,GAAa,SAAS,UAAY,EAAA,EAAA,CAAA,CAAA;AAExC,IAAA,IAAI,WAAa,EAAA;AACf,MAAU,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAGZ,IAAA,IAAI,MAAM,UAAa,CAAA,EAAA;AACrB,MAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,sBAAA,CAAA,CAAA,CAAA;AAChB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAI,IAAA,UAAA,CAAW,OAAQ,CAAA,GAAA,CAAA,GAAO,CAAI,CAAA,EAAA;AAChC,MAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,gCAAA,CAAA,CAAA,CAAA;AAChB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAA,IAAI,oBAAoB,UAAa,CAAA,EAAA;AACnC,MAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,wBAAA,CAAA,CAAA,CAAA;AAChB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAI,IAAA,eAAe,CAAI,CAAA,EAAA;AACrB,MAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,sBAAA,CAAA,CAAA,CAAA;AAChB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAA,iBAAA,CAAkB,CAAE,OAAS,EAAA,UAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAG/B,EAAA,SAAA,CAAU,MAAM;AACd,IAAU,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GAAA,EACT,CAAC,kBAAA,CAAA,CAAA,CAAA;AAEJ,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,KAAA,EAAO,CAAE,OAAS,EAAA,EAAA,CAAA;AAAA,GAAA,sCACpB,KAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,YAAc,EAAA,EAAA;AAAA,MACd,OAAS,EAAA,MAAA;AAAA,MACT,cAAgB,EAAA,eAAA;AAAA,MAChB,UAAY,EAAA,QAAA;AAAA,KAAA;AAAA,GAAA,sCAGb,MAAD,EAAA,IAAA,EAAO,EAAE,oBACR,CAAA,CAAA,EAAA,kBAAA,wCAAuB,gBAAD,EAAA;AAAA,IAAkB,EAAI,EAAA,kBAAA;AAAA,GAAA,CAAA,CAAA,sCAE9C,KAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,OAAS,EAAA,MAAA;AAAA,MACT,cAAgB,EAAA,eAAA;AAAA,MAChB,UAAY,EAAA,QAAA;AAAA,KAAA;AAAA,GAGb,EAAA,MAAA,IAAU,kBACT,mBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA;AAAA,IACE,YAAc,EAAA,kBAAA;AAAA,IACd,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,MAAA,aAAA,CAAc,EAAE,MAAO,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAEzB,UAAU,CAAC,kBAAA;AAAA,IACX,IAAK,EAAA,OAAA;AAAA,IACL,QAAQ,MAAM;AACZ,MAAA,eAAA,EAAA,CAAA;AAAA,KAAA;AAAA,IAEF,cAAc,MAAM;AAClB,MAAgB,eAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,mBAInB,KAAA,CAAA,aAAA,CAAA,MAAA,EAAD,IAAO,EAAA,kBAAA,CAAA,sCAER,UAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,KAAO,EAAA,MAAA;AAAA,MACP,UAAY,EAAA,EAAA;AAAA,MACZ,MAAQ,EAAA,OAAO,kBAAuB,KAAA,WAAA,GAAc,SAAY,GAAA,aAAA;AAAA,KAAA;AAAA,IAElE,SAAS,MAAM;AACb,MAAA,IAAI,kBAAoB,EAAA;AACtB,QAAA,SAAA,CAAU,CAAC,MAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AASzB,MAAM,mBAAmB,CAAC;AAAA,EACxB,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,CAKI,KAAA;AACJ,EAAA,MAAM,CAAE,WAAgB,CAAA,GAAA,YAAA,EAAA,CAAA;AACxB,EAAA,MAAM,MAAM,UAAW,CAAA,iBAAA,CAAA,CAAA;AACvB,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAA,MAAM,CAAE,gBAAqB,CAAA,GAAA,YAAA,EAAA,CAAA;AAE7B,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,UAAY,EAAA,GAAA;AAAA,IACZ,QAAU,EAAA,EAAA;AAAA,IACV,MAAQ,EAAA,iBAAA;AAAA,GAAA,CAAA;AAGV,EAAA,MAAM,aAAgB,GAAA;AAAA,IACpB,MAAQ,EAAA,eAAA;AAAA,IACR,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA,GAAA;AAAA,IACZ,QAAU,EAAA,YAAA;AAAA,GAAA,CAAA;AAGZ,EAAM,MAAA,YAAA,GAAe,CAAC,SAAsB,KAAA;AAC1C,IAAA,YAAA,CAAa,mBAAoB,CAAA,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGnC,EAAM,MAAA,eAAA,GAAkB,CAAC,GAAA,EAAa,KAAkB,KAAA;AACtD,IAAA,YAAA,CAAa,gBAAgB,GAAK,EAAA,KAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGpC,EAAA,MAAM,IAAO,GAAA,aAAA,CAAc,GAAI,CAAA,CAAC,CAAY,MAAA;AAAA,IAC1C,OAAO,CAAE,CAAA,GAAA;AAAA,IACT,OAAO,CAAE,CAAA,KAAA;AAAA,IACT,OAAO,CAAG,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAA,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAGZ,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAD,IACE,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA;AAAA,IAAK,KAAO,EAAA,UAAA;AAAA,GAAa,EAAA,CAAA,CAAE,WAC3B,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAD,EAAA;AAAA,IACE,IAAA;AAAA,IACA,aAAe,EAAA,IAAA;AAAA,IACf,mBAAmB,gBAAoB,IAAA,IAAA,GAAA,gBAAA,GAAA,EAAA;AAAA,IACvC,gBAAA,EAAkB,CAAC,SAAA,KAAsB,YAAa,CAAA,SAAA,CAAA;AAAA,GAAA,CAAA,sCAEvD,OAAD,EAAA;AAAA,IAAS,KAAA,EAAO,CAAE,MAAQ,EAAA,CAAA,CAAA;AAAA,GAAA,CAAA,EACzB,WACC,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EACG,gBAAiB,CAAA,GAAA,CAChB,CAAC,YAAc,KAAA;AAjP3B,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAkPc,IAAc,OAAA,CAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,WAAA,yCACX,KAAD,EAAA;AAAA,MAAK,KAAA,EAAO,CAAE,SAAW,EAAA,EAAA,CAAA;AAAA,MAAM,KAAK,YAAa,CAAA,KAAA;AAAA,KAAA,sCAC9C,KAAD,EAAA;AAAA,MAAK,KAAO,EAAA,aAAA;AAAA,KACT,EAAA,CAAA,CAAE,cAAgB,CAAA,EAAA,GAAA,EAAE,YAAa,CAAA,GAAA,CAAA,EAEnC,CAAa,CAAA,EAAA,GAAA,YAAA,CAAA,WAAA,KAAb,IAA0B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,IAAS,CAClC,mBAAA,KAAA,CAAA,aAAA,CAAC,aAAD,EAAA;AAAA,MACE,IAAM,EAAA,YAAA,CAAa,WAAY,CAAA,GAAA,CAAI,CAAC,CAAmB,MAAA;AAAA,QACrD,OAAO,CAAE,CAAA,GAAA;AAAA,QACT,OAAO,CAAE,CAAA,KAAA;AAAA,OAAA,CAAA,CAAA;AAAA,MAEX,mBACE,CAAI,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAA,qBAAA,KAAJ,IAA2B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,KAA3B,mBAA0C,YAAa,CAAA,KAAA,CAAA;AAAA,MAEzD,GAAI,EAAA,GAAA;AAAA,MACJ,WAAa,EAAA,IAAA;AAAA,MACb,aAAe,EAAA,IAAA;AAAA,MACf,gBAAkB,EAAA,CAAC,KAAU,KAAA,eAAA,CAAgB,aAAa,KAAO,EAAA,KAAA,CAAA;AAAA,MACjE,KAAA,EAAO,CAAE,YAAc,EAAA,EAAA,CAAA;AAAA,KAAA,CAAA,uCAGxB,MAAD,EAAA;AAAA,MACE,KAAO,EAAA,CAAE,MAAQ,EAAA,oBAAA,EAAsB,KAAO,EAAA,KAAA,CAAA;AAAA,MAC9C,OAAO,CAAI,EAAA,GAAA,CAAA,EAAA,GAAA,GAAA,CAAA,qBAAA,KAAJ,IAA2B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,KAA3B,mBAA0C,YAAa,CAAA,KAAA,CAAA;AAAA,MAC9D,aAAa,CAAE,CAAA,cAAA,CAAA;AAAA,MACf,QAAU,EAAA,CAAC,KAAU,KAAA,eAAA,CAAgB,aAAa,KAAO,EAAA,KAAA,CAAA;AAAA,MACzD,UAAY,EAAA,IAAA;AAAA,KAAA,EAEX,aAAa,WAAY,CAAA,GAAA,CAAI,CAAC,GAC7B,qBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,MAAR,EAAA;AAAA,MAAe,KAAK,GAAI,CAAA,KAAA;AAAA,MAAO,OAAO,GAAI,CAAA,KAAA;AAAA,KACvC,EAAA,GAAA,CAAI,GAKb,CAAA,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAD,EAAA;AAAA,MAAS,KAAA,EAAO,CAAE,MAAQ,EAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAU5C,MAAM,wBAA0C,CAAC,CAAE,QAAU,EAAA,YAAA,EAAc,SAAS,QAAe,CAAA,KAAA;AA/RnG,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAgSE,EAAM,MAAA,CAAE,yBAAyB,iBAAsB,CAAA,GAAA,SAAA,EAAA,CAAA;AAEvD,EAAM,MAAA,MAAA,GAAS,WAAW,QAAS,CAAA,MAAA,CAAA,CAAA;AACnC,EAAM,MAAA,aAAA,GAAgB,CAAQ,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,EAAA,CAAA;AAC/C,EAAA,MAAM,mBACJ,CAAQ,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,8BAAA,MAAmC,OAAO,CAAQ,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,SAAA,KAAR,YAAqB,EAAK,GAAA,EAAA,CAAA;AAE9E,EACE,uBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,sCACG,SAAD,EAAA;AAAA,IACE,QAAA,EAAU,MAAM,eAAgB,CAAA,UAAA;AAAA,IAChC,gBAAkB,EAAA,iBAAA;AAAA,IAClB,QAAA,EAAU,CAAC,CAAA,KAAM,uBAA0B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,uBAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,sCAE5C,gBAAD,EAAA;AAAA,IACE,YAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,GAED,CAAA,EAAA,CAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,uBAAsB,IAC7B,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,sCACG,eAAD,EAAA,IAAA,CAAA,sCACC,OAAD,EAAA;AAAA,IAAS,KAAA,EAAO,CAAE,MAAQ,EAAA,CAAA,CAAA;AAAA,GAAA,CAAA,sCACzB,YAAD,EAAA;AAAA,IAAc,OAAA;AAAA,IAAkB,QAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAO1C,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AA9T7C,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA+TE,EAAM,MAAA,QAAA,GAAW,UAAU,kBAAmB,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,eAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAM,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AACxF,EAAM,MAAA,YAAA,GAAe,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,CAAA;AAEvC,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA,EAAS,MAAM,UAAW,CAAA,OAAA;AAAA,IAC1B,QAAA,EAAU,MAAM,UAAW,CAAA,QAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAI/B,8BAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAC7D,CAAA,CAAA,CAAA,qBAAA,CAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ScribbleSidebar/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Slider } from 'antd';\nimport penActivate from '@/assets/attributeIcon/pen_a.svg';\nimport pen from '@/assets/attributeIcon/pen.svg';\nimport eraserActivate from '@/assets/attributeIcon/eraser_a.svg';\nimport eraser from '@/assets/attributeIcon/eraser.svg';\nimport { getClassName } from '@/utils/dom';\nimport { AppState } from '@/store';\nimport { EScribblePattern } from '@/data/enums/ToolType';\nimport { useSelector } from '@/store/ctx';\n\ninterface IProps {\n // toolInstance?: GraphToolInstance;\n // stepInfo?: IStepInfo;\n onChange: (tool: number, values: number) => void;\n}\n\nconst ScribbleSidebar: React.FC<IProps> = (props) => {\n const { onChange } = props;\n // 查看时候默认值\n const toolInstance = useSelector((state: AppState) => state.annotation.toolInstance);\n const [silderValue, setSilderValue] = useState(20);\n const [selectTool, setSelectTool] = useState(EScribblePattern.Scribble);\n\n const changeValue = () => {\n onChange(selectTool, silderValue);\n };\n\n return (\n <div className={getClassName('scribble')}>\n <div className={getClassName('scribble', 'select')}>\n <img\n src={selectTool === EScribblePattern.Scribble ? penActivate : pen}\n onClick={() => {\n setSelectTool(EScribblePattern.Scribble);\n toolInstance?.setPattern(EScribblePattern.Scribble);\n changeValue();\n }}\n />\n <img\n src={selectTool === EScribblePattern.Erase ? eraserActivate : eraser}\n onClick={() => {\n setSelectTool(EScribblePattern.Erase);\n toolInstance?.setPattern(EScribblePattern.Erase);\n\n changeValue();\n }}\n />\n </div>\n <div className={getClassName('scribble', 'silder')}>\n <span className={getClassName('scribble', 'circle')} />\n <Slider\n onChange={(v: number) => {\n setSilderValue(v);\n changeValue();\n toolInstance?.setPenSize(v);\n }}\n min={1}\n max={50}\n style={{ width: '60%' }}\n value={silderValue}\n />\n <span\n className={getClassName('scribble', 'circle')}\n style={{ width: '10px', height: '10px' }}\n />\n </div>\n </div>\n );\n};\n\nexport default ScribbleSidebar;\n"],"names":["penActivate","pen","eraserActivate","eraser"],"mappings":";;;;;;;;;;AAkBM,MAAA,eAAA,GAAoC,CAAC,KAAU,KAAA;AACnD,EAAA,MAAM,CAAE,QAAa,CAAA,GAAA,KAAA,CAAA;AAErB,EAAA,MAAM,YAAe,GAAA,WAAA,CAAY,CAAC,KAAA,KAAoB,MAAM,UAAW,CAAA,YAAA,CAAA,CAAA;AACvE,EAAM,MAAA,CAAC,WAAa,EAAA,cAAA,CAAA,GAAkB,QAAS,CAAA,EAAA,CAAA,CAAA;AAC/C,EAAA,MAAM,CAAC,UAAA,EAAY,aAAiB,CAAA,GAAA,QAAA,CAAS,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAE9D,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,QAAA,CAAS,UAAY,EAAA,WAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGvB,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,WAAW,YAAa,CAAA,UAAA,CAAA;AAAA,GAAA,sCAC1B,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACtC,KAAD,EAAA;AAAA,IACE,GAAK,EAAA,UAAA,KAAe,gBAAiB,CAAA,QAAA,GAAWA,GAAc,GAAAC,KAAA;AAAA,IAC9D,SAAS,MAAM;AACb,MAAA,aAAA,CAAc,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAC/B,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,WAAW,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAC1C,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,sCAGH,KAAD,EAAA;AAAA,IACE,GAAK,EAAA,UAAA,KAAe,gBAAiB,CAAA,KAAA,GAAQC,KAAiB,GAAAC,KAAA;AAAA,IAC9D,SAAS,MAAM;AACb,MAAA,aAAA,CAAc,gBAAiB,CAAA,KAAA,CAAA,CAAA;AAC/B,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,WAAW,gBAAiB,CAAA,KAAA,CAAA,CAAA;AAE1C,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,sCAIL,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACtC,MAAD,EAAA;AAAA,IAAM,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,CAAA,sCACzC,MAAD,EAAA;AAAA,IACE,QAAA,EAAU,CAAC,CAAc,KAAA;AACvB,MAAe,cAAA,CAAA,CAAA,CAAA,CAAA;AACf,MAAA,WAAA,EAAA,CAAA;AACA,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,UAAW,CAAA,CAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAE3B,GAAK,EAAA,CAAA;AAAA,IACL,GAAK,EAAA,EAAA;AAAA,IACL,KAAA,EAAO,CAAE,KAAO,EAAA,KAAA,CAAA;AAAA,IAChB,KAAO,EAAA,WAAA;AAAA,GAAA,CAAA,sCAER,MAAD,EAAA;AAAA,IACE,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,IACpC,KAAO,EAAA,CAAE,KAAO,EAAA,MAAA,EAAQ,MAAQ,EAAA,MAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}