@labelbee/lb-components 1.9.0 → 1.9.1-alpha.0

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 (251) hide show
  1. package/dist/components/pointCloudView/PointCloudBackView.js +1 -1
  2. package/dist/components/pointCloudView/PointCloudInfos.js +1 -1
  3. package/dist/components/pointCloudView/PointCloudSideView.js +1 -1
  4. package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  5. package/es/App.js.map +1 -0
  6. package/es/assets/annotation/common/icon_adapt.svg.js.map +1 -0
  7. package/es/assets/annotation/common/icon_adapt_black.svg.js.map +1 -0
  8. package/es/assets/annotation/common/icon_back.svg.js.map +1 -0
  9. package/es/assets/annotation/common/icon_backA.svg.js.map +1 -0
  10. package/es/assets/annotation/common/icon_clear.svg.js.map +1 -0
  11. package/es/assets/annotation/common/icon_clearSmall.svg.js.map +1 -0
  12. package/es/assets/annotation/common/icon_clearSmall_a.svg.js.map +1 -0
  13. package/es/assets/annotation/common/icon_clear_a.svg.js.map +1 -0
  14. package/es/assets/annotation/common/icon_invalid.svg.js.map +1 -0
  15. package/es/assets/annotation/common/icon_invalid_a.svg.js.map +1 -0
  16. package/es/assets/annotation/common/icon_next.svg.js.map +1 -0
  17. package/es/assets/annotation/common/icon_nextA.svg.js.map +1 -0
  18. package/es/assets/annotation/common/icon_r.svg.js.map +1 -0
  19. package/es/assets/annotation/common/icon_rA.svg.js.map +1 -0
  20. package/es/assets/annotation/common/icon_save.svg.js.map +1 -0
  21. package/es/assets/annotation/common/icon_saveA.svg.js.map +1 -0
  22. package/es/assets/annotation/image/brightness.svg.js.map +1 -0
  23. package/es/assets/annotation/image/contrast.svg.js.map +1 -0
  24. package/es/assets/annotation/image/icon_yuantu.svg.js.map +1 -0
  25. package/es/assets/annotation/image/saturation.svg.js.map +1 -0
  26. package/es/assets/annotation/lineTool/icon_line.svg.js.map +1 -0
  27. package/es/assets/annotation/lineTool/icon_line_a.svg.js.map +1 -0
  28. package/es/assets/annotation/pointCloudTool/changePointCloudValid.svg.js.map +1 -0
  29. package/es/assets/annotation/pointCloudTool/copy.svg.js.map +1 -0
  30. package/es/assets/annotation/pointCloudTool/nextBox.svg.js.map +1 -0
  31. package/es/assets/annotation/pointCloudTool/nodata.svg.js.map +1 -0
  32. package/es/assets/annotation/pointCloudTool/patse.svg.js.map +1 -0
  33. package/es/assets/annotation/pointCloudTool/prevBox.svg.js.map +1 -0
  34. package/es/assets/annotation/pointCloudTool/rotate180_black.svg.js.map +1 -0
  35. package/es/assets/annotation/pointCloudTool/selectAll.svg.js.map +1 -0
  36. package/es/assets/annotation/pointCloudTool/selectMultiple.svg.js.map +1 -0
  37. package/es/assets/annotation/pointCloudTool/unitAttribute.svg.js.map +1 -0
  38. package/es/assets/annotation/pointCloudTool/unitAttributeForbid.svg.js.map +1 -0
  39. package/es/assets/annotation/pointCloudTool/unitAttributeHover.svg.js.map +1 -0
  40. package/es/assets/annotation/pointTool/icon_point.svg.js.map +1 -0
  41. package/es/assets/annotation/pointTool/icon_point_a.svg.js.map +1 -0
  42. package/es/assets/annotation/polygonTool/icon_polygon.svg.js.map +1 -0
  43. package/es/assets/annotation/polygonTool/icon_polygon_a.svg.js.map +1 -0
  44. package/es/assets/annotation/rectTool/icon_rect.svg.js.map +1 -0
  45. package/es/assets/annotation/rectTool/icon_rectPattern.svg.js +4 -0
  46. package/es/assets/annotation/rectTool/icon_rectPattern.svg.js.map +1 -0
  47. package/es/assets/annotation/rectTool/icon_rect_a.svg.js.map +1 -0
  48. package/es/assets/annotation/toolHotKeyIcon/icon_alttab_kj.svg.js.map +1 -0
  49. package/es/assets/annotation/toolHotKeyIcon/icon_back_kj.svg.js.map +1 -0
  50. package/es/assets/annotation/toolHotKeyIcon/icon_cencel_kj.svg.js.map +1 -0
  51. package/es/assets/annotation/toolHotKeyIcon/icon_copyBackwardResult.svg.js +4 -0
  52. package/es/assets/annotation/toolHotKeyIcon/icon_copyBackwardResult.svg.js.map +1 -0
  53. package/es/assets/annotation/toolHotKeyIcon/icon_del_kj.svg.js.map +1 -0
  54. package/es/assets/annotation/toolHotKeyIcon/icon_forward_kj.svg.js.map +1 -0
  55. package/es/assets/annotation/toolHotKeyIcon/icon_frameActive_kj.svg.js.map +1 -0
  56. package/es/assets/annotation/toolHotKeyIcon/icon_frameChange_kj.svg.js.map +1 -0
  57. package/es/assets/annotation/toolHotKeyIcon/icon_frameNull_kj.svg.js.map +1 -0
  58. package/es/assets/annotation/toolHotKeyIcon/icon_frame_kj.svg.js.map +1 -0
  59. package/es/assets/annotation/toolHotKeyIcon/icon_fullView_kj.svg.js.map +1 -0
  60. package/es/assets/annotation/toolHotKeyIcon/icon_kj1.svg.js.map +1 -0
  61. package/es/assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js.map +1 -0
  62. package/es/assets/annotation/toolHotKeyIcon/icon_last_kj.svg.js.map +1 -0
  63. package/es/assets/annotation/toolHotKeyIcon/icon_lineActive_kj.svg.js.map +1 -0
  64. package/es/assets/annotation/toolHotKeyIcon/icon_lineChange_kj.svg.js.map +1 -0
  65. package/es/assets/annotation/toolHotKeyIcon/icon_lineCont_kj.svg.js.map +1 -0
  66. package/es/assets/annotation/toolHotKeyIcon/icon_lineDel_kj.svg.js.map +1 -0
  67. package/es/assets/annotation/toolHotKeyIcon/icon_lineInsert_kj.svg.js.map +1 -0
  68. package/es/assets/annotation/toolHotKeyIcon/icon_lineNull_kj.svg.js.map +1 -0
  69. package/es/assets/annotation/toolHotKeyIcon/icon_lineSpecial_kj.svg.js.map +1 -0
  70. package/es/assets/annotation/toolHotKeyIcon/icon_line_kj.svg.js.map +1 -0
  71. package/es/assets/annotation/toolHotKeyIcon/icon_loupe_kj.svg.js.map +1 -0
  72. package/es/assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js.map +1 -0
  73. package/es/assets/annotation/toolHotKeyIcon/icon_mouse_middle_kj.svg.js.map +1 -0
  74. package/es/assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js.map +1 -0
  75. package/es/assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js.map +1 -0
  76. package/es/assets/annotation/toolHotKeyIcon/icon_next_kj.svg.js.map +1 -0
  77. package/es/assets/annotation/toolHotKeyIcon/icon_noDisplay.svg.js.map +1 -0
  78. package/es/assets/annotation/toolHotKeyIcon/icon_playPause.svg.js.map +1 -0
  79. package/es/assets/annotation/toolHotKeyIcon/icon_pointActive_kj.svg.js.map +1 -0
  80. package/es/assets/annotation/toolHotKeyIcon/icon_pointNull_kj.svg.js.map +1 -0
  81. package/es/assets/annotation/toolHotKeyIcon/icon_point_kj.svg.js.map +1 -0
  82. package/es/assets/annotation/toolHotKeyIcon/icon_polygonActive_kj.svg.js.map +1 -0
  83. package/es/assets/annotation/toolHotKeyIcon/icon_polygonChange_kj.svg.js.map +1 -0
  84. package/es/assets/annotation/toolHotKeyIcon/icon_polygonDel_kj.svg.js.map +1 -0
  85. package/es/assets/annotation/toolHotKeyIcon/icon_polygonInsert_kj.svg.js.map +1 -0
  86. package/es/assets/annotation/toolHotKeyIcon/icon_polygonMerge_kj.svg.js.map +1 -0
  87. package/es/assets/annotation/toolHotKeyIcon/icon_polygonNull_kj.svg.js.map +1 -0
  88. package/es/assets/annotation/toolHotKeyIcon/icon_reform_kj.svg.js.map +1 -0
  89. package/es/assets/annotation/toolHotKeyIcon/icon_reload_kj.svg.js.map +1 -0
  90. package/es/assets/annotation/toolHotKeyIcon/icon_save_kj.svg.js.map +1 -0
  91. package/es/assets/annotation/toolHotKeyIcon/icon_segment.svg.js.map +1 -0
  92. package/es/assets/annotation/toolHotKeyIcon/icon_speed_kj.svg.js.map +1 -0
  93. package/es/assets/annotation/toolHotKeyIcon/icon_straightLine_kj.svg.js.map +1 -0
  94. package/es/assets/annotation/toolHotKeyIcon/icon_tab_kj.svg.js.map +1 -0
  95. package/es/assets/annotation/toolHotKeyIcon/icon_tag_kj.svg.js.map +1 -0
  96. package/es/assets/annotation/toolHotKeyIcon/icon_unGrip_kj.svg.js.map +1 -0
  97. package/es/assets/annotation/toolHotKeyIcon/setValid.svg.js.map +1 -0
  98. package/es/assets/annotation/video/icon_keyboard_h.svg.js.map +1 -0
  99. package/es/assets/attributeIcon/eraser.svg.js.map +1 -0
  100. package/es/assets/attributeIcon/eraser_a.svg.js.map +1 -0
  101. package/es/assets/attributeIcon/pen.svg.js.map +1 -0
  102. package/es/assets/attributeIcon/pen_a.svg.js.map +1 -0
  103. package/es/assets/attributeIcon/zoomUp.svg.js.map +1 -0
  104. package/es/assets/cssIcon/annotation/icon_clearSmall.svg +10 -0
  105. package/es/assets/cssIcon/annotation/icon_clearSmall_a.svg +10 -0
  106. package/es/assets/cssIcon/slide_btn.svg +23 -0
  107. package/es/assets/predictTracking/icon.svg.js +1 -0
  108. package/es/assets/predictTracking/icon.svg.js.map +1 -0
  109. package/es/assets/toolStyle/icon_border.svg.js.map +1 -0
  110. package/es/assets/toolStyle/icon_borderColor.svg.js.map +1 -0
  111. package/es/assets/toolStyle/icon_opacityFill.svg.js.map +1 -0
  112. package/es/assets/toolStyle/icon_opacityStroke.svg.js.map +1 -0
  113. package/es/components/AnnotationView/index.js.map +1 -0
  114. package/es/components/AnnotationView/pointCloudAnnotationView.js.map +1 -0
  115. package/es/components/ImageError/index.js +53 -0
  116. package/es/components/ImageError/index.js.map +1 -0
  117. package/es/components/annotationStepPopover/index.js.map +1 -0
  118. package/es/components/attributeList/index.js.map +1 -0
  119. package/es/components/checkboxList/index.js.map +1 -0
  120. package/es/components/colorTag/index.js.map +1 -0
  121. package/es/components/customAntd/IconWithText/index.js.map +1 -0
  122. package/es/components/customResizeHook/index.js.map +1 -0
  123. package/es/components/fileException/FileError.js.map +1 -0
  124. package/es/components/fileException/FileInvalid.js.map +1 -0
  125. package/es/components/fileException/index.js.map +1 -0
  126. package/es/components/pointCloudView/PointCloud2DView.js.map +1 -0
  127. package/es/components/pointCloudView/PointCloud3DView.js.map +1 -0
  128. package/es/components/pointCloudView/PointCloudBackView.js +1 -1
  129. package/es/components/pointCloudView/PointCloudBackView.js.map +1 -0
  130. package/es/components/pointCloudView/PointCloudContext.js.map +1 -0
  131. package/es/components/pointCloudView/PointCloudInfos.js +1 -1
  132. package/es/components/pointCloudView/PointCloudInfos.js.map +1 -0
  133. package/es/components/pointCloudView/PointCloudLayout.js.map +1 -0
  134. package/es/components/pointCloudView/PointCloudListener.js.map +1 -0
  135. package/es/components/pointCloudView/PointCloudSideView.js +1 -1
  136. package/es/components/pointCloudView/PointCloudSideView.js.map +1 -0
  137. package/es/components/pointCloudView/PointCloudTopView.js.map +1 -0
  138. package/es/components/pointCloudView/components/EmptyPage/index.js.map +1 -0
  139. package/es/components/pointCloudView/components/UnifiedParamsModal/index.js +228 -0
  140. package/es/components/pointCloudView/components/UnifiedParamsModal/index.js.map +1 -0
  141. package/es/components/pointCloudView/components/UnifyParamsModal/index.js.map +1 -0
  142. package/es/components/pointCloudView/data.js +4 -0
  143. package/es/components/pointCloudView/data.js.map +1 -0
  144. package/es/components/pointCloudView/hooks/useAttribute.js.map +1 -0
  145. package/es/components/pointCloudView/hooks/useBoxes.js.map +1 -0
  146. package/es/components/pointCloudView/hooks/useConfig.js.map +1 -0
  147. package/es/components/pointCloudView/hooks/useHistory.js.map +1 -0
  148. package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -0
  149. package/es/components/pointCloudView/hooks/usePolygon.js.map +1 -0
  150. package/es/components/pointCloudView/hooks/useRotate.js.map +1 -0
  151. package/es/components/pointCloudView/hooks/useSingleBox.js.map +1 -0
  152. package/es/components/pointCloudView/hooks/useStatus.js.map +1 -0
  153. package/es/components/pointCloudView/hooks/useZoom.js.map +1 -0
  154. package/es/components/pointCloudView/index.js.map +1 -0
  155. package/es/components/predictTracking/index.js +1 -0
  156. package/es/components/predictTracking/index.js.map +1 -0
  157. package/es/components/predictTracking/predictTrackingIcon/index.js +1 -0
  158. package/es/components/predictTracking/predictTrackingIcon/index.js.map +1 -0
  159. package/es/components/predictTracking/previewResult/index.js +1 -0
  160. package/es/components/predictTracking/previewResult/index.js.map +1 -0
  161. package/es/components/predictTracking/previewResult/util.js +1 -0
  162. package/es/components/predictTracking/previewResult/util.js.map +1 -0
  163. package/es/components/videoAnnotate/index.js.map +1 -0
  164. package/es/components/videoPlayer/TagToolInstanceAdaptor.js.map +1 -0
  165. package/es/components/videoPlayer/TagToolInstanceAdaptorI18nProvider.js.map +1 -0
  166. package/es/components/videoPlayer/VideoTagLayer.js.map +1 -0
  167. package/es/components/videoPlayer/components/controller/index.js.map +1 -0
  168. package/es/components/videoPlayer/index.js.map +1 -0
  169. package/es/components/videoPlayer/utils.js.map +1 -0
  170. package/es/configureStore.js.map +1 -0
  171. package/es/constant/index.js.map +1 -0
  172. package/es/constant/styleString.js.map +1 -0
  173. package/es/data/Style.js.map +1 -0
  174. package/es/data/enums/AnnotationSize.js.map +1 -0
  175. package/es/data/enums/ToolType.js.map +1 -0
  176. package/es/hooks/annotation.js.map +1 -0
  177. package/es/hooks/useConfig.js +18 -0
  178. package/es/hooks/useConfig.js.map +1 -0
  179. package/es/hooks/useRafState.js.map +1 -0
  180. package/es/hooks/useRefCache.js.map +1 -0
  181. package/es/hooks/useSafeSate.js.map +1 -0
  182. package/es/hooks/useSize.js.map +1 -0
  183. package/es/hooks/useUnmountedRef.js.map +1 -0
  184. package/es/index.js.map +1 -0
  185. package/es/store/Actions.js.map +1 -0
  186. package/es/store/annotation/actionCreators.js.map +1 -0
  187. package/es/store/annotation/map.js.map +1 -0
  188. package/es/store/annotation/reducer.js.map +1 -0
  189. package/es/store/annotation/selectors.js.map +1 -0
  190. package/es/store/ctx.js.map +1 -0
  191. package/es/store/imgAttribute/actionCreators.js.map +1 -0
  192. package/es/store/imgAttribute/reducer.js.map +1 -0
  193. package/es/store/index.js.map +1 -0
  194. package/es/store/toolStyle/actionCreators.js.map +1 -0
  195. package/es/store/toolStyle/reducer.js.map +1 -0
  196. package/es/utils/AnnotationDataUtils.js.map +1 -0
  197. package/es/utils/ConfigUtils.js.map +1 -0
  198. package/es/utils/PageOperator.js.map +1 -0
  199. package/es/utils/StepUtils.js.map +1 -0
  200. package/es/utils/TextUtils.js.map +1 -0
  201. package/es/utils/ToolStyleUtils.js.map +1 -0
  202. package/es/utils/ToolUtils.js.map +1 -0
  203. package/es/utils/data.js.map +1 -0
  204. package/es/utils/dom.js.map +1 -0
  205. package/es/utils/index.js.map +1 -0
  206. package/es/views/MainView/annotationOperation/index.js.map +1 -0
  207. package/es/views/MainView/annotationTips/index.js.map +1 -0
  208. package/es/views/MainView/index.js.map +1 -0
  209. package/es/views/MainView/sidebar/AnnotationText/index.js.map +1 -0
  210. package/es/views/MainView/sidebar/ClearIcon/index.js.map +1 -0
  211. package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js.map +1 -0
  212. package/es/views/MainView/sidebar/GeneralOperation/index.js.map +1 -0
  213. package/es/views/MainView/sidebar/GeneralOperation/useOperationList.js.map +1 -0
  214. package/es/views/MainView/sidebar/ImgAttributeInfo/index.js.map +1 -0
  215. package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js.map +1 -0
  216. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  217. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -0
  218. package/es/views/MainView/sidebar/ScribbleSidebar/index.js.map +1 -0
  219. package/es/views/MainView/sidebar/SwitchAttributeList/index.js.map +1 -0
  220. package/es/views/MainView/sidebar/TagSidebar/index.js.map +1 -0
  221. package/es/views/MainView/sidebar/TextAreaFormat/index.js.map +1 -0
  222. package/es/views/MainView/sidebar/TextToolSidebar/index.js.map +1 -0
  223. package/es/views/MainView/sidebar/ToolIcons.js.map +1 -0
  224. package/es/views/MainView/sidebar/ToolStyle/index.js.map +1 -0
  225. package/es/views/MainView/sidebar/index.js.map +1 -0
  226. package/es/views/MainView/toolFooter/AnnotatedAttributes/index.js.map +1 -0
  227. package/es/views/MainView/toolFooter/FooterPopover.js.map +1 -0
  228. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/common/index.js.map +1 -0
  229. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -0
  230. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/line/index.js.map +1 -0
  231. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/point/index.js.map +1 -0
  232. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js.map +1 -0
  233. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/polygon/index.js.map +1 -0
  234. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/rectToolShortCutTable/index.js.map +1 -0
  235. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js.map +1 -0
  236. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/tag/index.js.map +1 -0
  237. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/text/index.js.map +1 -0
  238. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/videoTag/index.js.map +1 -0
  239. package/es/views/MainView/toolFooter/FooterTips/index.js.map +1 -0
  240. package/es/views/MainView/toolFooter/HiddenTips/index.js.map +1 -0
  241. package/es/views/MainView/toolFooter/PageNumber/index.js.map +1 -0
  242. package/es/views/MainView/toolFooter/Pagination.js.map +1 -0
  243. package/es/views/MainView/toolFooter/ZoomController/ZoomLevel/index.js.map +1 -0
  244. package/es/views/MainView/toolFooter/ZoomController/index.js.map +1 -0
  245. package/es/views/MainView/toolFooter/index.js.map +1 -0
  246. package/es/views/MainView/toolHeader/ExportData/index.js.map +1 -0
  247. package/es/views/MainView/toolHeader/StepSwitch/index.js.map +1 -0
  248. package/es/views/MainView/toolHeader/headerOption/index.js.map +1 -0
  249. package/es/views/MainView/toolHeader/index.js.map +1 -0
  250. package/package.json +2 -3
  251. package/LICENSE +0 -203
@@ -0,0 +1,228 @@
1
+ import { ESubmitType } from '../../../../constant/index.js';
2
+ import { ToSubmitFileData, BatchUpdateResultByTrackID } from '../../../../store/annotation/actionCreators.js';
3
+ import { LabelBeeContext, useDispatch } from '../../../../store/ctx.js';
4
+ import { Form, Modal, InputNumber, Select, Popover, message } from 'antd';
5
+ import React, { useState, useEffect, useCallback } from 'react';
6
+ import { useTranslation } from 'react-i18next';
7
+ import { QuestionCircleOutlined } from '@ant-design/icons';
8
+ import { PointCloudUtils } from '@labelbee/lb-utils';
9
+ import { connect } from 'react-redux';
10
+ import { useSingleBox } from '../../hooks/useSingleBox.js';
11
+ import { MathUtils } from '@labelbee/lb-annotation';
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __defProps = Object.defineProperties;
15
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
16
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
17
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
18
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
19
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
20
+ var __spreadValues = (a, b) => {
21
+ for (var prop in b || (b = {}))
22
+ if (__hasOwnProp.call(b, prop))
23
+ __defNormalProp(a, prop, b[prop]);
24
+ if (__getOwnPropSymbols)
25
+ for (var prop of __getOwnPropSymbols(b)) {
26
+ if (__propIsEnum.call(b, prop))
27
+ __defNormalProp(a, prop, b[prop]);
28
+ }
29
+ return a;
30
+ };
31
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
32
+ const layout = {
33
+ labelCol: {span: 8},
34
+ wrapperCol: {span: 16}
35
+ };
36
+ const defaultNumberRules = [{required: true, message: "\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"}];
37
+ const defaultSelectedAttribute = [{required: true, message: "\u8BF7\u9009\u62E9\u4E3B\u5C5E\u6027"}];
38
+ const PrefixTag = ({text}) => {
39
+ return /* @__PURE__ */ React.createElement("span", {
40
+ style: {
41
+ borderRadius: "4px 0px 0px 4px",
42
+ padding: "0px 12px",
43
+ background: "#FAFAFA",
44
+ border: "1px solid rgb(217 217 217)",
45
+ borderRight: "0",
46
+ display: "flex",
47
+ alignItems: "center",
48
+ height: 32
49
+ }
50
+ }, text);
51
+ };
52
+ const UnifiedParamsModal = ({id, visible, onCancel, config, imgList, imgIndex}) => {
53
+ const dispatch = useDispatch();
54
+ const {selectedBox} = useSingleBox();
55
+ const [size, setSize] = useState();
56
+ const [form] = Form.useForm();
57
+ const {t} = useTranslation();
58
+ useEffect(() => {
59
+ if (visible === false) {
60
+ form.resetFields();
61
+ setSize(void 0);
62
+ }
63
+ }, [visible]);
64
+ const onFinish = (values) => {
65
+ var _a;
66
+ if (!id) {
67
+ return;
68
+ }
69
+ if (!size) {
70
+ message.info("\u8BE5\u8303\u56F4\u4E0D\u5B58\u5728\u66F4\u6539\u6570\u636E, \u8BF7\u66F4\u6539\u7EDF\u4E00\u8303\u56F4");
71
+ return;
72
+ }
73
+ dispatch(ToSubmitFileData(ESubmitType.SyncImgList));
74
+ const newData = {
75
+ attribute: values.attribute
76
+ };
77
+ if (config.secondaryAttributeConfigurable) {
78
+ const newSubAttribute = {};
79
+ (_a = config.inputList) == null ? void 0 : _a.forEach((data) => {
80
+ const subData = values[data.value];
81
+ if (subData !== void 0) {
82
+ Object.assign(newSubAttribute, {[data.value]: subData});
83
+ }
84
+ });
85
+ if (Object.keys(newSubAttribute).length > 0) {
86
+ Object.assign(newData, {subAttribute: newSubAttribute});
87
+ }
88
+ }
89
+ if (size) {
90
+ Object.assign(newData, size);
91
+ }
92
+ dispatch(BatchUpdateResultByTrackID(id, newData, [values.prevPage - 1, values.nextPage - 1]));
93
+ onCancel();
94
+ };
95
+ const recalculateSize = useCallback(() => {
96
+ var _a;
97
+ const {prevPage, nextPage} = form.getFieldsValue(["prevPage", "nextPage"]);
98
+ const newImgList = imgList.filter((_, i) => MathUtils.isInRange(i, [prevPage - 1, nextPage - 1]));
99
+ if (!((newImgList == null ? void 0 : newImgList.length) > 0) || !(selectedBox == null ? void 0 : selectedBox.info) || ((_a = selectedBox == null ? void 0 : selectedBox.info) == null ? void 0 : _a.trackID) === void 0) {
100
+ setSize(void 0);
101
+ return;
102
+ }
103
+ const newMaxSize = PointCloudUtils.getMaxSizeFromBox({
104
+ trackID: selectedBox.info.trackID,
105
+ imgList: newImgList
106
+ });
107
+ setSize(newMaxSize);
108
+ }, [imgList, selectedBox, imgIndex]);
109
+ const onOk = () => form.submit();
110
+ const sizeShow = () => {
111
+ if (!size || !(selectedBox == null ? void 0 : selectedBox.info)) {
112
+ return;
113
+ }
114
+ const style = {marginRight: 16};
115
+ const {length, width, height} = PointCloudUtils.transferBox2Kitti(__spreadValues(__spreadValues({}, selectedBox == null ? void 0 : selectedBox.info), size));
116
+ return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("span", {
117
+ style
118
+ }, t("Length"), ": ", length.toFixed(2)), /* @__PURE__ */ React.createElement("span", {
119
+ style
120
+ }, t("Width"), ": ", width.toFixed(2)), /* @__PURE__ */ React.createElement("span", {
121
+ style
122
+ }, t("Height"), ": ", height.toFixed(2)), /* @__PURE__ */ React.createElement(Popover, {
123
+ placement: "rightBottom",
124
+ content: "\u7EDF\u4E00\u5C3A\u5BF8\u4E3A\u8BE5ID\u7684\u6240\u6709\u6807\u6CE8\u6846\u4E2D\u6700\u5927\u7684\u5C3A\u5BF8"
125
+ }, /* @__PURE__ */ React.createElement(QuestionCircleOutlined, null)));
126
+ };
127
+ const selectStyle = {
128
+ width: "200px"
129
+ };
130
+ const attributeStyle = {
131
+ marginBottom: "24px",
132
+ display: "flex",
133
+ alignItems: "center"
134
+ };
135
+ return /* @__PURE__ */ React.createElement(Modal, {
136
+ title: t("UnifiedParams"),
137
+ visible,
138
+ onCancel,
139
+ onOk,
140
+ wrapClassName: "labelbee-custom-modal"
141
+ }, /* @__PURE__ */ React.createElement(Form, __spreadProps(__spreadValues({}, layout), {
142
+ form,
143
+ onFinish
144
+ }), /* @__PURE__ */ React.createElement(Form.Item, {
145
+ name: "id",
146
+ label: t("CurrentBoxTrackIDs")
147
+ }, id), /* @__PURE__ */ React.createElement(Form.Item, {
148
+ label: t("UnifiedTrackIDRange"),
149
+ required: true
150
+ }, /* @__PURE__ */ React.createElement(Form.Item, {
151
+ style: {display: "inline-block"},
152
+ rules: defaultNumberRules,
153
+ name: "prevPage",
154
+ noStyle: true
155
+ }, /* @__PURE__ */ React.createElement(InputNumber, {
156
+ min: 1,
157
+ style: {width: "80px"},
158
+ onChange: () => recalculateSize()
159
+ })), /* @__PURE__ */ React.createElement("span", {
160
+ style: {
161
+ display: "inline-block",
162
+ width: "24px",
163
+ textAlign: "center"
164
+ }
165
+ }, "-"), /* @__PURE__ */ React.createElement(Form.Item, {
166
+ style: {display: "inline-block"},
167
+ rules: defaultNumberRules,
168
+ name: "nextPage",
169
+ noStyle: true
170
+ }, /* @__PURE__ */ React.createElement(InputNumber, {
171
+ min: 1,
172
+ style: {width: "80px"},
173
+ onChange: () => recalculateSize()
174
+ })), /* @__PURE__ */ React.createElement("span", {
175
+ style: {
176
+ display: "inline-block",
177
+ width: "40x",
178
+ marginLeft: "10px",
179
+ textAlign: "center"
180
+ }
181
+ }, t("Page"))), /* @__PURE__ */ React.createElement(Form.Item, {
182
+ name: "UnifiedSize",
183
+ label: t("UnifiedSize")
184
+ }, sizeShow()), /* @__PURE__ */ React.createElement(Form.Item, {
185
+ label: t("UnifiedTag"),
186
+ required: true
187
+ }, /* @__PURE__ */ React.createElement("div", {
188
+ style: attributeStyle
189
+ }, /* @__PURE__ */ React.createElement(PrefixTag, {
190
+ text: t("Attribute")
191
+ }), /* @__PURE__ */ React.createElement(Form.Item, {
192
+ name: "attribute",
193
+ noStyle: true,
194
+ rules: defaultSelectedAttribute
195
+ }, /* @__PURE__ */ React.createElement(Select, {
196
+ style: selectStyle
197
+ }, config.attributeList.map((v) => /* @__PURE__ */ React.createElement(Select.Option, {
198
+ key: v.value,
199
+ value: v.value
200
+ }, v.key))))), config.secondaryAttributeConfigurable && config.inputList.map((v) => {
201
+ var _a;
202
+ return /* @__PURE__ */ React.createElement("div", {
203
+ key: v.value,
204
+ style: attributeStyle
205
+ }, /* @__PURE__ */ React.createElement(PrefixTag, {
206
+ text: v.key
207
+ }), /* @__PURE__ */ React.createElement(Form.Item, {
208
+ name: v.value,
209
+ noStyle: true,
210
+ required: false
211
+ }, /* @__PURE__ */ React.createElement(Select, {
212
+ style: selectStyle
213
+ }, (_a = v.subSelected) == null ? void 0 : _a.map((subData) => /* @__PURE__ */ React.createElement(Select.Option, {
214
+ key: subData.value,
215
+ value: subData.value
216
+ }, subData.key)))));
217
+ }))));
218
+ };
219
+ const mapStateToProps = (state) => {
220
+ return {
221
+ imgList: state.annotation.imgList,
222
+ imgIndex: state.annotation.imgIndex
223
+ };
224
+ };
225
+ var UnifiedParamsModal$1 = connect(mapStateToProps, null, null, {context: LabelBeeContext})(UnifiedParamsModal);
226
+
227
+ export { UnifiedParamsModal$1 as default };
228
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/pointCloudView/components/UnifiedParamsModal/index.tsx"],"sourcesContent":["import { ESubmitType } from '@/constant';\nimport { BatchUpdateResultByTrackID, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport { LabelBeeContext, useDispatch } from '@/store/ctx';\nimport { Form, InputNumber, message, Modal, Popover, Select } from 'antd';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { QuestionCircleOutlined } from '@ant-design/icons';\nimport { IPointCloudConfig, PointCloudUtils } from '@labelbee/lb-utils';\nimport { connect } from 'react-redux';\nimport { AppState } from '@/store';\nimport { AnnotationFileList } from '@/types/data';\nimport { useSingleBox } from '../../hooks/useSingleBox';\nimport { MathUtils } from '@labelbee/lb-annotation';\n\ninterface IProps {\n id?: number;\n visible: boolean;\n onCancel: () => void;\n config: IPointCloudConfig;\n imgList: AnnotationFileList;\n imgIndex: number;\n}\n\nconst layout = {\n labelCol: { span: 8 },\n wrapperCol: { span: 16 },\n};\n\nconst defaultNumberRules = [{ required: true, message: '请填写一个数字' }];\nconst defaultSelectedAttribute = [{ required: true, message: '请选择主属性' }];\nconst DECIMAL_PLACES = 2;\n\nconst PrefixTag: React.FC<{ text: string }> = ({ text }) => {\n return (\n <span\n style={{\n borderRadius: '4px 0px 0px 4px',\n padding: '0px 12px',\n background: '#FAFAFA',\n border: '1px solid rgb(217 217 217)',\n borderRight: '0',\n display: 'flex',\n alignItems: 'center',\n height: 32,\n }}\n >\n {text}\n </span>\n );\n};\n\nconst UnifiedParamsModal = ({ id, visible, onCancel, config, imgList, imgIndex }: IProps) => {\n const dispatch = useDispatch();\n const { selectedBox } = useSingleBox();\n const [size, setSize] = useState<{ width: number; height: number; depth: number }>();\n\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n useEffect(() => {\n if (visible === false) {\n // Clear All Data\n form.resetFields();\n setSize(undefined);\n }\n }, [visible]);\n\n const onFinish = (values: any) => {\n if (!id) {\n return;\n }\n\n if (!size) {\n message.info('该范围不存在更改数据, 请更改统一范围');\n return;\n }\n\n dispatch(ToSubmitFileData(ESubmitType.SyncImgList));\n const newData = {\n attribute: values.attribute,\n };\n\n if (config.secondaryAttributeConfigurable) {\n const newSubAttribute = {};\n config.inputList?.forEach((data) => {\n const subData = values[data.value];\n if (subData !== undefined) {\n Object.assign(newSubAttribute, { [data.value]: subData });\n }\n });\n\n if (Object.keys(newSubAttribute).length > 0) {\n Object.assign(newData, { subAttribute: newSubAttribute });\n }\n }\n\n if (size) {\n Object.assign(newData, size);\n }\n\n dispatch(BatchUpdateResultByTrackID(id, newData, [values.prevPage - 1, values.nextPage - 1]));\n onCancel();\n };\n\n const recalculateSize = useCallback(() => {\n const { prevPage, nextPage } = form.getFieldsValue(['prevPage', 'nextPage']);\n\n // 1. Filter the imgInfo in range.\n const newImgList = imgList.filter((_, i) =>\n MathUtils.isInRange(i, [prevPage - 1, nextPage - 1]),\n );\n\n if (\n !(newImgList?.length > 0) ||\n !selectedBox?.info ||\n selectedBox?.info?.trackID === undefined\n ) {\n setSize(undefined);\n return;\n }\n\n // 2. Get the Max Size of imgList\n const newMaxSize = PointCloudUtils.getMaxSizeFromBox({\n trackID: selectedBox.info.trackID,\n imgList: newImgList as Array<{ result: string }>,\n });\n\n setSize(newMaxSize);\n }, [imgList, selectedBox, imgIndex]);\n\n const onOk = () => form.submit();\n\n const sizeShow = () => {\n if (!size || !selectedBox?.info) {\n return;\n }\n const style = { marginRight: 16 };\n\n const { length, width, height } = PointCloudUtils.transferBox2Kitti({\n ...selectedBox?.info, // Just for the type check\n ...size,\n });\n\n return (\n <div>\n <span style={style}>\n {t('Length')}: {length.toFixed(2)}\n </span>\n <span style={style}>\n {t('Width')}: {width.toFixed(2)}\n </span>\n <span style={style}>\n {t('Height')}: {height.toFixed(2)}\n </span>\n <Popover placement='rightBottom' content='统一尺寸为该ID的所有标注框中最大的尺寸'>\n <QuestionCircleOutlined />\n </Popover>\n </div>\n );\n };\n const selectStyle = {\n width: '200px',\n };\n\n const attributeStyle = {\n marginBottom: '24px',\n display: 'flex',\n alignItems: 'center',\n };\n\n return (\n <Modal\n title={t('UnifiedParams')}\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 label={t('UnifiedTrackIDRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='prevPage'\n noStyle={true}\n >\n <InputNumber min={1} style={{ width: '80px' }} onChange={() => recalculateSize()} />\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 min={1} style={{ width: '80px' }} onChange={() => recalculateSize()} />\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\n <Form.Item name='UnifiedSize' label={t('UnifiedSize')}>\n {sizeShow()}\n </Form.Item>\n\n <Form.Item label={t('UnifiedTag')} required={true}>\n <div style={attributeStyle}>\n <PrefixTag text={t('Attribute')} />\n <Form.Item name='attribute' noStyle={true} rules={defaultSelectedAttribute}>\n <Select style={selectStyle}>\n {config.attributeList.map((v) => (\n <Select.Option key={v.value} value={v.value}>\n {v.key}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n </div>\n {config.secondaryAttributeConfigurable &&\n config.inputList.map((v) => (\n <div key={v.value} style={attributeStyle}>\n <PrefixTag text={v.key} />\n <Form.Item name={v.value} noStyle={true} required={false}>\n <Select style={selectStyle}>\n {v.subSelected?.map((subData) => (\n <Select.Option key={subData.value} value={subData.value}>\n {subData.key}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n </div>\n ))}\n </Form.Item>\n </Form>\n </Modal>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n UnifiedParamsModal,\n);\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/pointCloudView/components/UnifyParamsModal/index.tsx"],"sourcesContent":["import { ESubmitType } from '@/constant';\nimport { BatchUpdateResultByTrackID, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport { LabelBeeContext, useDispatch } from '@/store/ctx';\nimport { Form, InputNumber, message, Modal, Popover, Select } from 'antd';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { QuestionCircleOutlined } from '@ant-design/icons';\nimport { IPointCloudConfig, PointCloudUtils } from '@labelbee/lb-utils';\nimport { connect } from 'react-redux';\nimport { AppState } from '@/store';\nimport { AnnotationFileList } from '@/types/data';\nimport { useSingleBox } from '../../hooks/useSingleBox';\nimport { MathUtils } from '@labelbee/lb-annotation';\n\ninterface IProps {\n id?: number;\n visible: boolean;\n onCancel: () => void;\n config: IPointCloudConfig;\n imgList: AnnotationFileList;\n imgIndex: number;\n}\n\nconst layout = {\n labelCol: { span: 8 },\n wrapperCol: { span: 16 },\n};\n\nconst defaultNumberRules = [{ required: true, message: '请填写一个数字' }];\nconst defaultSelectedAttribute = [{ required: true, message: '请选择主属性' }];\nconst DECIMAL_PLACES = 2;\n\nconst PrefixTag: React.FC<{ text: string }> = ({ text }) => {\n return (\n <span\n style={{\n borderRadius: '4px 0px 0px 4px',\n padding: '0px 12px',\n background: '#FAFAFA',\n border: '1px solid rgb(217 217 217)',\n borderRight: '0',\n display: 'flex',\n alignItems: 'center',\n height: 32,\n }}\n >\n {text}\n </span>\n );\n};\n\nconst UnifyParamsModal = ({ id, visible, onCancel, config, imgList, imgIndex }: IProps) => {\n const dispatch = useDispatch();\n const { selectedBox } = useSingleBox();\n const [size, setSize] = useState<{ width: number; height: number; depth: number }>();\n\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n useEffect(() => {\n if (visible === false) {\n // Clear All Data\n form.resetFields();\n setSize(undefined);\n } else {\n // Init\n recalculateSize();\n }\n }, [visible]);\n\n const onFinish = (values: any) => {\n if (!id) {\n return;\n }\n\n if (!size) {\n message.info('该范围不存在更改数据, 请更改统一范围');\n return;\n }\n\n dispatch(ToSubmitFileData(ESubmitType.SyncImgList));\n const newData = {\n attribute: values.attribute,\n };\n\n if (config.secondaryAttributeConfigurable) {\n const newSubAttribute = {};\n config.inputList?.forEach((data) => {\n const subData = values[data.value];\n if (subData !== undefined) {\n Object.assign(newSubAttribute, { [data.value]: subData });\n }\n });\n\n if (Object.keys(newSubAttribute).length > 0) {\n Object.assign(newData, { subAttribute: newSubAttribute });\n }\n }\n\n if (size) {\n Object.assign(newData, size);\n }\n\n dispatch(BatchUpdateResultByTrackID(id, newData, [values.prevPage - 1, values.nextPage - 1]));\n onCancel();\n };\n\n const recalculateSize = useCallback(() => {\n const { prevPage, nextPage } = form.getFieldsValue(['prevPage', 'nextPage']);\n\n // 1. Filter the imgInfo in range.\n const newImgList = imgList.filter((_, i) =>\n MathUtils.isInRange(i, [prevPage - 1, nextPage - 1]),\n );\n\n if (\n !(newImgList?.length > 0) ||\n !selectedBox?.info ||\n selectedBox?.info?.trackID === undefined\n ) {\n setSize(undefined);\n return;\n }\n\n // 2. Get the Max Size of imgList\n const newMaxSize = PointCloudUtils.getMaxSizeFromBox({\n trackID: selectedBox.info.trackID,\n imgList: newImgList as Array<{ result: string }>,\n });\n\n setSize(newMaxSize);\n }, [imgList, selectedBox, imgIndex]);\n\n const onOk = () => form.submit();\n\n const sizeShow = () => {\n if (!size || !selectedBox?.info) {\n return;\n }\n const style = { marginRight: 16 };\n\n const { length, width, height } = PointCloudUtils.transferBox2Kitti({\n ...selectedBox?.info, // Just for the type check\n ...size,\n });\n\n return (\n <div>\n <span style={style}>\n {t('Length')}: {length.toFixed(DECIMAL_PLACES)}\n </span>\n <span style={style}>\n {t('Width')}: {width.toFixed(DECIMAL_PLACES)}\n </span>\n <span style={style}>\n {t('Height')}: {height.toFixed(DECIMAL_PLACES)}\n </span>\n <Popover placement='rightBottom' content='统一尺寸为该ID的所有标注框中最大的尺寸'>\n <QuestionCircleOutlined />\n </Popover>\n </div>\n );\n };\n const selectStyle = {\n width: '200px',\n };\n\n const attributeStyle = {\n marginBottom: '24px',\n display: 'flex',\n alignItems: 'center',\n };\n\n return (\n <Modal\n title={t('UnifyParams')}\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('UnifyTrackID')}>\n {id}\n </Form.Item>\n\n <Form.Item label={t('UnifyAttributeRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='prevPage'\n noStyle={true}\n initialValue={1} // First Page \n >\n <InputNumber\n precision={0}\n min={1}\n style={{ width: '80px' }}\n onChange={() => recalculateSize()}\n />\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 initialValue={imgList.length} // Last Page \n >\n <InputNumber\n precision={0}\n min={1}\n style={{ width: '80px' }}\n onChange={() => recalculateSize()}\n />\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\n <Form.Item name='UnifySize' label={t('UnifySize')}>\n {sizeShow()}\n </Form.Item>\n\n <Form.Item label={t('UnifyTag')} required={true}>\n <div style={attributeStyle}>\n <PrefixTag text={t('Attribute')} />\n <Form.Item name='attribute' noStyle={true} rules={defaultSelectedAttribute}>\n <Select style={selectStyle}>\n {config.attributeList.map((v) => (\n <Select.Option key={v.value} value={v.value}>\n {v.key}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n </div>\n {config.secondaryAttributeConfigurable &&\n config.inputList.map((v) => (\n <div key={v.value} style={attributeStyle}>\n <PrefixTag text={v.key} />\n <Form.Item name={v.value} noStyle={true} required={false}>\n <Select style={selectStyle}>\n {v.subSelected?.map((subData) => (\n <Select.Option key={subData.value} value={subData.value}>\n {subData.key}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n </div>\n ))}\n </Form.Item>\n </Form>\n </Modal>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n imgIndex: state.annotation.imgIndex,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(UnifyParamsModal);\n"],"names":[],"mappings":"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"}