@labelbee/lb-components 1.23.0-alpha.5 → 1.23.0-alpha.50

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 (167) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/assets/annotation/icon_link.svg.js +1 -0
  3. package/dist/assets/annotation/icon_unlink.svg.js +1 -0
  4. package/dist/assets/annotation/pointCloudTool/leftArrow.svg.js +1 -1
  5. package/dist/assets/annotation/pointCloudTool/rightArrow.svg.js +1 -1
  6. package/dist/assets/annotation/pointCloudTool/rotate90_black.svg.js +1 -0
  7. package/dist/assets/icons/ad33251.svg +26 -0
  8. package/dist/components/AnnotationView/index.js +1 -1
  9. package/dist/components/LLMToolView/index.js +1 -1
  10. package/dist/components/LLMToolView/sidebar/components/textEditor/index.js +2 -2
  11. package/dist/components/LLMToolView/sidebar/components/textEditor/index.module.scss.js +1 -1
  12. package/dist/components/LLMToolView/sidebar/components/textInputBox/index.js +2 -2
  13. package/dist/components/LLMToolView/sidebar/index.js +1 -1
  14. package/dist/components/LLMToolView/utils/data.js +1 -1
  15. package/dist/components/NLPToolView/index.js +1 -1
  16. package/dist/components/NLPToolView/textContent/index.js +1 -1
  17. package/dist/components/audioAnnotate/audioContext/index.js +1 -1
  18. package/dist/components/audioAnnotate/audioSide/clipSidebar/index.js +1 -1
  19. package/dist/components/audioAnnotate/index.js +1 -1
  20. package/dist/components/audioAnnotate/textInput/index.js +1 -1
  21. package/dist/components/audioAnnotate/textInput/index.module.scss.js +1 -1
  22. package/dist/components/audioAnnotate/utils/dataTransform.js +1 -0
  23. package/dist/components/audioPlayer/clipRegion/index.js +1 -1
  24. package/dist/components/audioPlayer/index.js +1 -1
  25. package/dist/components/audioPlayer/useAudioCombine/index.js +3 -2
  26. package/dist/components/audioPlayer/useAudioSegment/index.js +1 -1
  27. package/dist/components/longText/index.js +1 -1
  28. package/dist/components/pointCloud2DRectOperationView/index.js +1 -1
  29. package/dist/components/pointCloudView/PointCloud2DSingleView.js +1 -1
  30. package/dist/components/pointCloudView/PointCloud2DView.js +1 -1
  31. package/dist/components/pointCloudView/PointCloud3DView.js +1 -1
  32. package/dist/components/pointCloudView/PointCloudContext.js +1 -1
  33. package/dist/components/pointCloudView/PointCloudListener.js +1 -1
  34. package/dist/components/pointCloudView/PointCloudSegment2DView.js +1 -1
  35. package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
  36. package/dist/components/pointCloudView/hooks/useDataLinkSwitch.js +1 -0
  37. package/dist/components/pointCloudView/hooks/useHighlight.js +1 -1
  38. package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  39. package/dist/components/pointCloudView/hooks/useRotateEdge.js +1 -0
  40. package/dist/components/pointCloudView/hooks/useSingleBox.js +1 -1
  41. package/dist/components/pointCloudView/hooks/useStatus.js +1 -1
  42. package/dist/components/pointCloudView/index.js +1 -1
  43. package/dist/components/pointCloudView/utils/map.js +1 -0
  44. package/dist/components/subAttributeList/index.js +1 -0
  45. package/dist/components/videoAnnotate/videoClipTool/index.js +1 -1
  46. package/dist/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.js +1 -1
  47. package/dist/index.css +64 -19
  48. package/dist/index.js +1 -1
  49. package/dist/store/Actions.js +1 -1
  50. package/dist/store/annotatedBox/index.js +1 -1
  51. package/dist/store/annotation/actionCreators.js +1 -1
  52. package/dist/store/annotation/reducer.js +1 -1
  53. package/dist/types/App.d.ts +3 -1
  54. package/dist/types/components/AnnotationView/index.d.ts +1 -0
  55. package/dist/types/components/LLMToolView/utils/data.d.ts +1 -1
  56. package/dist/types/components/audioAnnotate/audioContext/index.d.ts +10 -2
  57. package/dist/types/components/audioAnnotate/textInput/index.d.ts +1 -0
  58. package/dist/types/components/audioAnnotate/utils/dataTransform.d.ts +9 -0
  59. package/dist/types/components/audioPlayer/index.d.ts +28 -21
  60. package/dist/types/components/longText/index.d.ts +1 -0
  61. package/dist/types/components/pointCloud2DRectOperationView/index.d.ts +1 -0
  62. package/dist/types/components/pointCloudView/PointCloud2DView.d.ts +2 -1
  63. package/dist/types/components/pointCloudView/PointCloudContext.d.ts +19 -3
  64. package/dist/types/components/pointCloudView/hooks/useDataLinkSwitch.d.ts +21 -0
  65. package/dist/types/components/pointCloudView/hooks/useHighlight.d.ts +1 -1
  66. package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +5 -0
  67. package/dist/types/components/pointCloudView/hooks/useRotateEdge.d.ts +9 -0
  68. package/dist/types/components/pointCloudView/hooks/useSingleBox.d.ts +2 -1
  69. package/dist/types/components/pointCloudView/utils/map.d.ts +11 -0
  70. package/dist/types/components/subAttributeList/index.d.ts +10 -0
  71. package/dist/types/components/videoAnnotate/index.d.ts +2 -1
  72. package/dist/types/components/videoAnnotate/videoClipTool/index.d.ts +2 -1
  73. package/dist/types/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.d.ts +1 -1
  74. package/dist/types/index.d.ts +6 -1
  75. package/dist/types/store/Actions.d.ts +1 -0
  76. package/dist/types/store/annotatedBox/index.d.ts +2 -0
  77. package/dist/types/store/annotation/actionCreators.d.ts +3 -2
  78. package/dist/types/store/annotation/reducer.d.ts +1 -0
  79. package/dist/types/store/annotation/types.d.ts +9 -2
  80. package/dist/types/utils/AnnotationDataUtils.d.ts +57 -1
  81. package/dist/types/utils/index.d.ts +25 -1
  82. package/dist/types/views/MainView/sidebar/PointCloudToolSidebar/components/rectRotateSensitivitySlider/index.d.ts +3 -0
  83. package/dist/types/views/MainView/sidebar/TextToolSidebar/index.d.ts +1 -1
  84. package/dist/types/views/MainView/toolFooter/BatchSwitchConnectIn2DView/BatchSwitchConnectIn2DView.d.ts +9 -0
  85. package/dist/types/views/MainView/toolFooter/BatchSwitchConnectIn2DView/index.d.ts +1 -0
  86. package/dist/types/views/MainView/toolFooter/index.d.ts +1 -1
  87. package/dist/types/views/MainView/toolHeader/StepSwitch/index.d.ts +1 -1
  88. package/dist/types/views/MainView/toolHeader/index.d.ts +1 -1
  89. package/dist/utils/AnnotationDataUtils.js +1 -1
  90. package/dist/utils/index.js +1 -1
  91. package/dist/views/MainView/index.js +1 -1
  92. package/dist/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -1
  93. package/dist/views/MainView/sidebar/NLPSidebar/NLPAnnotatedList.js +1 -1
  94. package/dist/views/MainView/sidebar/PointCloudToolSidebar/components/rectRotateSensitivitySlider/index.js +1 -0
  95. package/dist/views/MainView/sidebar/PointCloudToolSidebar/components/rectRotateSensitivitySlider/index.module.scss.js +1 -0
  96. package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  97. package/dist/views/MainView/sidebar/TagSidebar/index.js +1 -1
  98. package/dist/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
  99. package/dist/views/MainView/toolFooter/BatchSwitchConnectIn2DView/BatchSwitchConnectIn2DView.js +1 -0
  100. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -1
  101. package/es/App.js +1 -1
  102. package/es/assets/annotation/icon_link.svg.js +1 -0
  103. package/es/assets/annotation/icon_unlink.svg.js +1 -0
  104. package/es/assets/annotation/pointCloudTool/leftArrow.svg.js +1 -1
  105. package/es/assets/annotation/pointCloudTool/rightArrow.svg.js +1 -1
  106. package/es/assets/annotation/pointCloudTool/rotate90_black.svg.js +1 -0
  107. package/es/components/AnnotationView/index.js +1 -1
  108. package/es/components/LLMToolView/index.js +1 -1
  109. package/es/components/LLMToolView/sidebar/components/textEditor/index.js +2 -2
  110. package/es/components/LLMToolView/sidebar/components/textEditor/index.module.scss.js +1 -1
  111. package/es/components/LLMToolView/sidebar/components/textInputBox/index.js +2 -2
  112. package/es/components/LLMToolView/sidebar/index.js +1 -1
  113. package/es/components/LLMToolView/utils/data.js +1 -1
  114. package/es/components/NLPToolView/index.js +1 -1
  115. package/es/components/NLPToolView/textContent/index.js +1 -1
  116. package/es/components/audioAnnotate/audioContext/index.js +1 -1
  117. package/es/components/audioAnnotate/audioSide/clipSidebar/index.js +1 -1
  118. package/es/components/audioAnnotate/index.js +1 -1
  119. package/es/components/audioAnnotate/textInput/index.js +1 -1
  120. package/es/components/audioAnnotate/textInput/index.module.scss.js +1 -1
  121. package/es/components/audioAnnotate/utils/dataTransform.js +1 -0
  122. package/es/components/audioPlayer/clipRegion/index.js +1 -1
  123. package/es/components/audioPlayer/index.js +1 -1
  124. package/es/components/audioPlayer/useAudioCombine/index.js +3 -2
  125. package/es/components/audioPlayer/useAudioSegment/index.js +1 -1
  126. package/es/components/longText/index.js +1 -1
  127. package/es/components/pointCloud2DRectOperationView/index.js +1 -1
  128. package/es/components/pointCloudView/PointCloud2DSingleView.js +1 -1
  129. package/es/components/pointCloudView/PointCloud2DView.js +1 -1
  130. package/es/components/pointCloudView/PointCloud3DView.js +1 -1
  131. package/es/components/pointCloudView/PointCloudContext.js +1 -1
  132. package/es/components/pointCloudView/PointCloudListener.js +1 -1
  133. package/es/components/pointCloudView/PointCloudSegment2DView.js +1 -1
  134. package/es/components/pointCloudView/PointCloudTopView.js +1 -1
  135. package/es/components/pointCloudView/hooks/useDataLinkSwitch.js +1 -0
  136. package/es/components/pointCloudView/hooks/useHighlight.js +1 -1
  137. package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  138. package/es/components/pointCloudView/hooks/useRotateEdge.js +1 -0
  139. package/es/components/pointCloudView/hooks/useSingleBox.js +1 -1
  140. package/es/components/pointCloudView/hooks/useStatus.js +1 -1
  141. package/es/components/pointCloudView/index.js +1 -1
  142. package/es/components/pointCloudView/utils/map.js +1 -0
  143. package/es/components/subAttributeList/index.js +1 -0
  144. package/es/components/videoAnnotate/videoClipTool/index.js +1 -1
  145. package/es/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.js +1 -1
  146. package/es/index.css +64 -19
  147. package/es/index.js +1 -1
  148. package/es/store/Actions.js +1 -1
  149. package/es/store/annotatedBox/index.js +1 -1
  150. package/es/store/annotation/actionCreators.js +1 -1
  151. package/es/store/annotation/reducer.js +1 -1
  152. package/es/utils/AnnotationDataUtils.js +1 -1
  153. package/es/utils/index.js +1 -1
  154. package/es/views/MainView/index.js +1 -1
  155. package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -1
  156. package/es/views/MainView/sidebar/NLPSidebar/NLPAnnotatedList.js +1 -1
  157. package/es/views/MainView/sidebar/PointCloudToolSidebar/components/rectRotateSensitivitySlider/index.js +1 -0
  158. package/es/views/MainView/sidebar/PointCloudToolSidebar/components/rectRotateSensitivitySlider/index.module.scss.js +1 -0
  159. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  160. package/es/views/MainView/sidebar/TagSidebar/index.js +1 -1
  161. package/es/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
  162. package/es/views/MainView/toolFooter/BatchSwitchConnectIn2DView/BatchSwitchConnectIn2DView.js +1 -0
  163. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -1
  164. package/package.json +3 -3
  165. package/dist/assets/annotation/pointCloudTool/rotate180_black.svg.js +0 -1
  166. package/dist/assets/icons/9d70807.svg +0 -5
  167. package/es/assets/annotation/pointCloudTool/rotate180_black.svg.js +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),index$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js");function _interopDefaultLegacy(s){return s&&typeof s=="object"&&"default"in s?s:{default:s}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(s,l,u)=>l in s?__defProp(s,l,{enumerable:!0,configurable:!0,writable:!0,value:u}):s[l]=u,__spreadValues=(s,l)=>{for(var u in l||(l={}))__hasOwnProp.call(l,u)&&__defNormalProp(s,u,l[u]);if(__getOwnPropSymbols)for(var u of __getOwnPropSymbols(l))__propIsEnum.call(l,u)&&__defNormalProp(s,u,l[u]);return s},__spreadProps=(s,l)=>__defProps(s,__getOwnPropDescs(l));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:s={},onLoaded:l,context:u,invalid:$e,height:Ie,hideError:Le,onError:te,updateRegion:x,removeRegion:B,regions:C=[],activeToolPanel:Oe,clipConfigurable:Ne,clipTextConfigurable:We,clipAttributeList:Fe,clipAttributeConfigurable:re,isCheck:E,hoverRegionId:I,footer:ze,drawLayerSlot:ne})=>{var oe,ie;const{url:M,path:ae}=s,[L,O]=React.useState(!1),[le,se]=React.useState(!1),[R,He]=React.useState(0),[Ue,ue]=React.useState(!1),[D,de]=React.useState(0),o=React.useRef(null),S=React.useRef(null),ce=React.useRef(R),N=e=>{ce.current=e,He(e)},[ve,Xe]=React.useState(0),[k,Ze]=React.useState(1),W=React.useRef(null),[fe,Ke]=React.useState({}),{audioClipState:F,setAudioClipState:A}=index.useAudioClipStore(),[z,H]=React.useState(!1),d=ahooks.useLatest(F),me=ahooks.useLatest(fe),Ve=ahooks.useLatest(L),w=ahooks.useLatest(C),pe=ahooks.useUpdate(),[ge,Ge]=React.useState([]),[_e,Ye]=React.useState({}),Je=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),be=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ze(e),audio.dispatchResizeEvent(),Je())};index$1({container:W.current,target:document.querySelector(`[data-id=${(ie=(oe=d.current)==null?void 0:oe.selectedRegion)==null?void 0:ie.id}]`),clipping:z,zoom:k,zoomHandler:be});const $=()=>{let e=w.current;const{attributeLockList:r}=d.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),X(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!E,resize:!E,color:"rgba(0, 0, 0, 0)"}))}),pe()},v=e=>{var r,t,n,i,a,f,g;const{id:c,loop:m=!0,playImmediately:y=!1}=e;if(c){const T=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(T).forEach(([,p])=>{const{id:P}=p;c===P?p.select():p.cancelSelect()}),A({selectedRegion:{id:c,loop:m},selectedAttribute:(f=(a=(i=w.current)==null?void 0:i.find(p=>p.id===c))==null?void 0:a.attribute)!=null?f:""}),m&&y&&((g=q(c))==null||g.playLoop())}else A({selectedRegion:{}})},{combineInstance:Qe}=index$2({waveRef:o,sortByStartRegions:ge,regionMap:_e,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:v}),{segmentInstance:et,onRegionMouseMove:tt,segmentTimeTip:rt}=index$3({waveRef:o,regionMap:_e,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:v}),ye={clipTextConfigurable:We,clipAttributeList:Fe,clipAttributeConfigurable:re,clipConfigurable:Ne};React.useEffect(()=>{A({selectedAttribute:""})},[re]),React.useEffect(()=>{U()},[F.selectedAttribute]),React.useEffect(()=>{$()},[F.attributeLockList]),ahooks.useDeepCompareEffect(()=>{A(ye),setTimeout(()=>{Ee()})},[ye]),ahooks.useDeepCompareEffect(()=>{Ge(_.sortBy(C,["start"])),Ye(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{}))},[C]),React.useEffect(()=>{if(I){const e=Ve.current;v({id:I,loop:e,playImmediately:!0})}else v({})},[I]);const Ee=()=>{var e,r;d.current.clipConfigurable?(!E&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),$()):((r=o.current)==null||r.disableDragSelection(),X()),U()},U=()=>{var e,r,t,n,i;let a="";d.current.clipConfigurable?a=audio.getAttributeColor(d.current.selectedAttribute,(e=d.current.clipAttributeList)!=null?e:[]):a="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${a}`}))},q=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},Re=()=>{var e,r;if(M){const t=((r=(e=ae==null?void 0:ae.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ue(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(M).then(n=>{Se(n)}):Se(M)}},Se=e=>{var r;e&&(se(!0),N(0),de(0),(r=o==null?void 0:o.current)==null||r.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},Z=e=>{const r=q(e);r&&(H(!1),r==null||r.remove(),B==null||B(e),v({}))},{run:he}=ahooks.useThrottleFn(v,{wait:500});index$4({sortByStartRegions:ge,setSelectedRegion:v});const nt=e=>{const{start:r,end:t}=me.current;return(r||t)&&e.update(me.current),e},ot=({action:e,id:r,eventDownTime:t})=>{var n,i;if(!d.current.clipConfigurable)return;r&&v({id:r});const a=q((r!=null?r:(n=d.current.selectedRegion)==null?void 0:n.id)||""),f=[];(e==="create"?w.current:(i=w.current)==null?void 0:i.filter(m=>m.id!==a.id)).forEach(m=>{const{start:y,end:T,attribute:p}=m;p===d.current.selectedAttribute&&[y,T].forEach(P=>{f.includes(P)||f.push(P)})});const c=audio.getCanMoveRange(f.sort((m,y)=>m-y),t);o.current.range=c},it=e=>{U(),setTimeout(()=>{H(!1)});const r=nt(e),{id:t,start:n,end:i}=r;v({id:t,playImmediately:!0});const a={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};x==null||x(a),pe()},at=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Ie||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:C,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;N(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;de(n),r(),l==null||l({duration:Math.round(n)}),se(!1),j(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",V),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",Z),lbAnnotation.EventBus.on("setSelectedRegion",he),e.on("regions-eventDown",ot),Ee()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{O(!0)}),e.on("pause",()=>{O(!1)}),e.on("finish",()=>{O(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ue(!0),l==null||l({hasError:!0}),te==null||te()}),e.on("region-created",t=>{const{id:n,start:i,end:a}=t;if(w.current.find(g=>g.id===n))return;const f={id:n,start:utils.decimalReserved(i,3),end:utils.decimalReserved(a,3),attribute:d.current.selectedAttribute,text:""};x==null||x(f)}),e.on("region-updated",(t,n)=>{var i,a,f,g,c,m,y,T,p,P;const je=n==null?void 0:n.action;A({combined:!1,segment:!1}),je==="resize"&&((a=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||a.setStyle({borderStyle:"solid"})),je==="drag"&&((g=(f=o==null?void 0:o.current)==null?void 0:f.cursor)==null||g.setStyle({borderColor:"transparent"}));const G={},Y=[],J={},bt=(c=w.current)==null?void 0:c.filter(b=>b.id!==t.id),yt=(T=(y=(m=o.current)==null?void 0:m.regions)==null?void 0:y.list)!=null?T:{};bt.forEach(b=>{var Me,De;const{element:Q}=(Me=yt[b.id])!=null?Me:{},{start:St,end:ht}=b;if(Q){const{x:ke,width:Pt}=((De=Q.getBoundingClientRect)==null?void 0:De.call(Q))||{},xt=ke+Pt;[ke,xt].forEach((ee,Ct)=>{Y.includes(ee)||(Y.push(ee),J[ee]=Ct===0?St:ht)})}});const{x:Be,width:Et}=((P=(p=t.element).getBoundingClientRect)==null?void 0:P.call(p))||{},Rt=Be+Et;Y.forEach(b=>{Math.abs(audio.precisionMinus(b,Be))<5&&(G.start=J[b]),Math.abs(audio.precisionMinus(b,Rt))<5&&(G.end=J[b])}),Ke(G),he({id:t.id}),H(!0)}),e.on("region-update-end",t=>{it(t)}),e.on("region-contextmenu",(t,n)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){Z(t.id);return}v({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,i)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),d.current.combined){Qe(t);return}if(d.current.segment){et(t,i);return}v({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",tt),o.current=e},lt=L?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Pe=e=>e?`${parseFloat((e/D*100).toFixed(4))}%`:"0%",xe=Pe(R),st=Pe(ve),h=()=>{if(!le)return o==null?void 0:o.current},ut=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},dt=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},j=()=>{var e;(e=h())==null||e.playPause(),v({})},Ce=e=>{var r;switch(e.keyCode){case EKeyCode.Right:ut();break;case EKeyCode.Left:dt();break;case EKeyCode.Space:e.preventDefault(),j();break;case EKeyCode.Delete:if(!E){const{id:t}=((r=d.current)==null?void 0:r.selectedRegion)||{};t&&Z(t)}break}},ct=e=>{V(e)},we=___default.default.throttle(ct,50);let K=!1;const Te=()=>{K&&(j(),K=!1),document.removeEventListener("mousemove",we),document.removeEventListener("mouseup",Te)},vt=e=>{V(e),L&&(K=!0,j()),document.addEventListener("mousemove",we),document.addEventListener("mouseup",Te)},ft=()=>{Re()};React.useEffect(()=>(at(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const mt=e=>{var r,t,n;(r=h())==null||r.playPause(),(t=h())==null||t.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",Ce),()=>{document.removeEventListener("keydown",Ce)})),React.useEffect(()=>{v({}),Re()},[M]);const Ae=e=>{var r,t,n,i;if((o==null?void 0:o.current)&&(S==null?void 0:S.current)){const a=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,f=(n=S==null?void 0:S.current)==null?void 0:n.getBoundingClientRect();let c=(e.clientX-f.left)/(((i=S==null?void 0:S.current)==null?void 0:i.clientWidth)||0)*a;return c>a&&(c=a),c}return 0},V=e=>{var r;const t=Ae(e);(r=o==null?void 0:o.current)==null||r.skip(t-ce.current),N(t)},pt=e=>{Xe(Ae(e))},gt=D?Math.max(D-R,0):0,_t=(u==null?void 0:u.toolName)!==EToolName.Empty&&(u==null?void 0:u.isEdit)!==!0&&(Oe==="remark"||E),qe=React__default.default.createElement("div",{className:index_module.audioPlayer},Ue&&!Le&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:ft,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:q,clipping:z}),React__default.default.createElement(index$7,{container:W.current}),React__default.default.createElement(index$8,{segmentTimeTip:rt}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:W},React__default.default.createElement("div",{id:"waveform",style:{width:`${k*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":d.current.combined,"bee-audio-clip":d.current.clipConfigurable})},$e&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:S,className:index_module.progress,onMouseDown:vt,onMouseMove:pt},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:xe}},audio.formatTime(R)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:st}},audio.formatTime(ve)),React__default.default.createElement(index$b,{playPercentage:xe})),_t&&(ne==null?void 0:ne({currentTime:R,remainingTime:gt,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:lt,onClick:()=>{j()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:le})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(R,"ss.SSS")} / -${audio.timeFormat(D-R,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{mt(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{be(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return u?React__default.default.createElement(AudioPlayerContext.Provider,{value:u},qe,C.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:fe,clipping:z,zoom:k,instance:q(r)}):null}),React__default.default.createElement(index$g.default,{footer:ze})):qe};exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),antd=require("antd"),index$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js"),reactI18next=require("react-i18next");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,u,d)=>u in l?__defProp(l,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):l[u]=d,__spreadValues=(l,u)=>{for(var d in u||(u={}))__hasOwnProp.call(u,d)&&__defNormalProp(l,d,u[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(u))__propIsEnum.call(u,d)&&__defNormalProp(l,d,u[d]);return l},__spreadProps=(l,u)=>__defProps(l,__getOwnPropDescs(u));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:l={},onLoaded:u,context:d,invalid:Oe,height:We,hideError:Ne,onError:re,updateRegion:C,removeRegion:M,regions:w=[],activeToolPanel:Fe,clipConfigurable:ze,clipTextConfigurable:ne,clipAttributeList:Ue,clipAttributeConfigurable:oe,secondaryAttributeConfigurable:He,subAttributeList:Xe,isCheck:E,hoverRegionId:O,footer:Ze,drawLayerSlot:ie,clipTextList:Ke,lang:ae})=>{var le,se;const{url:D,path:ue}=l,[W,N]=React.useState(!1),[ce,de]=React.useState(!1),[S,Ve]=React.useState(0),[Ge,fe]=React.useState(!1),[k,ve]=React.useState(0),o=React.useRef(null),R=React.useRef(null),me=React.useRef(S),F=e=>{me.current=e,Ve(e)},[pe,Ye]=React.useState(0),[I,Je]=React.useState(1),z=React.useRef(null),[ge,Qe]=React.useState({}),{audioClipState:U,setAudioClipState:q}=index.useAudioClipStore(),[H,X]=React.useState(!1),c=ahooks.useLatest(U),be=ahooks.useLatest(ge),_e=ahooks.useLatest(W),A=ahooks.useLatest(w),ye=ahooks.useUpdate(),[Ee,et]=React.useState([]),[Se,tt]=React.useState({}),rt=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Re=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Je(e),audio.dispatchResizeEvent(),rt())};index$1({container:z.current,target:document.querySelector(`[data-id=${(se=(le=c.current)==null?void 0:le.selectedRegion)==null?void 0:se.id}]`),clipping:H,zoom:I,zoomHandler:Re});const $=()=>{let e=A.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),K(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!E,resize:!E,color:"rgba(0, 0, 0, 0)"}))}),ye()},v=e=>{var r,t,n,i,s,m,p;const{id:a,loop:f=!0,playImmediately:g=!1,isLoopStatus:T}=e,h=T?_e.current:f;if(a){const P=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(P).forEach(([,y])=>{const{id:L}=y;a===L?y.select():y.cancelSelect()}),q({selectedRegion:{id:a,loop:h},selectedAttribute:(m=(s=(i=A.current)==null?void 0:i.find(y=>y.id===a))==null?void 0:s.attribute)!=null?m:""}),h&&g&&((p=j(a))==null||p.playLoop())}else q({selectedRegion:{}})},{combineInstance:nt}=index$2({waveRef:o,sortByStartRegions:Ee,regionMap:Se,updateRegion:C,removeRegion:M,generateRegions:$,setSelectedRegion:v}),{segmentInstance:ot,onRegionMouseMove:it,segmentTimeTip:at}=index$3({waveRef:o,regionMap:Se,updateRegion:C,removeRegion:M,generateRegions:$,setSelectedRegion:v}),xe={clipTextConfigurable:ne,clipAttributeList:Ue,clipAttributeConfigurable:oe,clipConfigurable:ze,secondaryAttributeConfigurable:He,subAttributeList:Xe,clipTextList:Ke};React.useEffect(()=>{var e;ae&&((e=lbUtils.i18n)==null||e.changeLanguage(ae))},[]),React.useEffect(()=>{q({selectedAttribute:""})},[oe]),React.useEffect(()=>{Z()},[U.selectedAttribute]),React.useEffect(()=>{$()},[U.attributeLockList]),ahooks.useDeepCompareEffect(()=>{q(xe),setTimeout(()=>{he()})},[xe]),ahooks.useDeepCompareEffect(()=>{et(_.sortBy(w,["start"])),tt(w.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{}))},[w]),React.useEffect(()=>{if(O){const e=_e.current;v({id:O,loop:e,playImmediately:!0})}else v({})},[O]);const he=()=>{var e,r;c.current.clipConfigurable?(!E&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),$()):((r=o.current)==null||r.disableDragSelection(),K()),Z()},Z=()=>{var e,r,t,n,i;let s="";c.current.clipConfigurable?s=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):s="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${s}`}))},j=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},Pe=()=>{var e,r;if(D){const t=((r=(e=ue==null?void 0:ue.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";fe(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(D).then(n=>{Ce(n)}):Ce(D)}},Ce=e=>{var r;e&&(de(!0),F(0),ve(0),(r=o==null?void 0:o.current)==null||r.load(e))},K=()=>{var e;(e=o.current)==null||e.clearRegions()},V=e=>{const r=j(e);r&&(X(!1),r==null||r.remove(),M==null||M(e),v({}))},{run:we}=ahooks.useThrottleFn(v,{wait:500});index$4({sortByStartRegions:Ee,setSelectedRegion:v});const lt=e=>{const{start:r,end:t}=be.current;return(r||t)&&e.update(be.current),e},st=({action:e,id:r,eventDownTime:t})=>{var n,i;if(!c.current.clipConfigurable)return;r&&v({id:r});const s=j((r!=null?r:(n=c.current.selectedRegion)==null?void 0:n.id)||""),m=[];(e==="create"?A.current:(i=A.current)==null?void 0:i.filter(f=>f.id!==s.id)).forEach(f=>{const{start:g,end:T,attribute:h}=f;h===c.current.selectedAttribute&&[g,T].forEach(P=>{m.includes(P)||m.push(P)})});const a=audio.getCanMoveRange(m.sort((f,g)=>f-g),t);o.current.range=a},ut=e=>{Z(),setTimeout(()=>{X(!1)});const r=lt(e),{id:t,start:n,end:i}=r;v({id:t,playImmediately:!0});const s={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};C==null||C(s),ye()},ct=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:We||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:w,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;F(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;ve(n),r(),u==null||u({duration:Math.round(n)}),de(!1),B(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",Y),lbAnnotation.EventBus.on("clearRegions",K),lbAnnotation.EventBus.on("removeRegionById",V),lbAnnotation.EventBus.on("setSelectedRegion",we),e.on("regions-eventDown",st),he()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{N(!0)}),e.on("pause",()=>{N(!1)}),e.on("finish",()=>{N(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{fe(!0),u==null||u({hasError:!0}),re==null||re()}),e.on("region-created",t=>{var n;const{id:i,start:s,end:m}=t;if(A.current.find(a=>a.id===i))return;const p={id:i,start:utils.decimalReserved(s,3),end:utils.decimalReserved(m,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const a=lbAnnotation.TagUtils.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);p.subAttribute=a!=null?a:{}}ne&&c.current.clipTextList.forEach((f,g)=>{g===0?Object.assign(p,{text:f==null?void 0:f.default}):Object.assign(p,{[f.key]:f==null?void 0:f.default})}),C==null||C(p)}),e.on("region-updated",(t,n)=>{var i,s,m,p,a,f,g,T,h,P;const y=n==null?void 0:n.action;q({combined:!1,segment:!1}),y==="resize"&&((s=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||s.setStyle({borderStyle:"solid"})),y==="drag"&&((p=(m=o==null?void 0:o.current)==null?void 0:m.cursor)==null||p.setStyle({borderColor:"transparent"}));const L={},J=[],Q={},Rt=(a=A.current)==null?void 0:a.filter(b=>b.id!==t.id),xt=(T=(g=(f=o.current)==null?void 0:f.regions)==null?void 0:g.list)!=null?T:{};Rt.forEach(b=>{var ke,Ie;const{element:ee}=(ke=xt[b.id])!=null?ke:{},{start:Ct,end:wt}=b;if(ee){const{x:$e,width:At}=((Ie=ee.getBoundingClientRect)==null?void 0:Ie.call(ee))||{},Tt=$e+At;[$e,Tt].forEach((te,qt)=>{J.includes(te)||(J.push(te),Q[te]=qt===0?Ct:wt)})}});const{x:De,width:ht}=((P=(h=t.element).getBoundingClientRect)==null?void 0:P.call(h))||{},Pt=De+ht;J.forEach(b=>{Math.abs(audio.precisionMinus(b,De))<5&&(L.start=Q[b]),Math.abs(audio.precisionMinus(b,Pt))<5&&(L.end=Q[b])}),Qe(L),we({id:t.id}),X(!0)}),e.on("region-update-end",t=>{ut(t)}),e.on("region-contextmenu",(t,n)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){V(t.id);return}v({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,i)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),c.current.combined){nt(t);return}if(c.current.segment){ot(t,i);return}v({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",it),o.current=e},dt=W?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Ae=e=>e?`${parseFloat((e/k*100).toFixed(4))}%`:"0%",Te=Ae(S),ft=Ae(pe),x=()=>{if(!ce)return o==null?void 0:o.current},vt=()=>{var e;(e=x())==null||e.skipForward(PER_PROGRESS)},mt=()=>{var e;(e=x())==null||e.skipBackward(PER_PROGRESS)},B=()=>{var e;(e=x())==null||e.playPause(),v({})},qe=e=>{var r;switch(e.keyCode){case EKeyCode.Right:vt();break;case EKeyCode.Left:mt();break;case EKeyCode.Space:e.preventDefault(),B();break;case EKeyCode.Delete:if(!E){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&V(t)}break}},pt=e=>{Y(e)},je=___default.default.throttle(pt,50);let G=!1;const Be=()=>{G&&(B(),G=!1),document.removeEventListener("mousemove",je),document.removeEventListener("mouseup",Be)},gt=e=>{Y(e),W&&(G=!0,B()),document.addEventListener("mousemove",je),document.addEventListener("mouseup",Be)},bt=()=>{Pe()};React.useEffect(()=>(ct(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const _t=e=>{var r,t,n;(r=x())==null||r.playPause(),(t=x())==null||t.setPlaybackRate(e),(n=x())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",qe),()=>{document.removeEventListener("keydown",qe)})),React.useEffect(()=>{v({}),Pe()},[D]);const Le=e=>{var r,t,n,i;if((o==null?void 0:o.current)&&(R==null?void 0:R.current)){const s=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,m=(n=R==null?void 0:R.current)==null?void 0:n.getBoundingClientRect();let a=(e.clientX-m.left)/(((i=R==null?void 0:R.current)==null?void 0:i.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},Y=e=>{var r;const t=Le(e);(r=o==null?void 0:o.current)==null||r.skip(t-me.current),F(t)},yt=e=>{Ye(Le(e))},Et=k?Math.max(k-S,0):0,St=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(Fe==="remark"||E),Me=React__default.default.createElement("div",{className:index_module.audioPlayer},Ge&&!Ne&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:bt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:j,clipping:H}),React__default.default.createElement(index$7,{container:z.current}),React__default.default.createElement(index$8,{segmentTimeTip:at}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:z},React__default.default.createElement("div",{id:"waveform",style:{width:`${I*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},Oe&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:R,className:index_module.progress,onMouseDown:gt,onMouseMove:yt},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:Te}},audio.formatTime(S)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:ft}},audio.formatTime(pe)),React__default.default.createElement(index$b,{playPercentage:Te})),St&&(ie==null?void 0:ie({currentTime:S,remainingTime:Et,audioPlayer:x()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:dt,onClick:()=>{B()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ce})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(S,"ss.SSS")} / -${audio.timeFormat(k-S,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{_t(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{Re(e)},zoom:I}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Me,w.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:ge,clipping:H,zoom:I,instance:j(r)}):null}),React__default.default.createElement(index$g.default,{footer:Ze})):Me},WrapAudioPlayer=l=>React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement(AudioPlayer,__spreadValues({},l)));exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext,exports.WrapAudioPlayer=WrapAudioPlayer;
@@ -1,2 +1,3 @@
1
- "use strict";var antd=require("antd"),lbAnnotation=require("@labelbee/lb-annotation"),index=require("../../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),React=require("react");const EKeyCode=lbAnnotation.cKeyCode.default,useAudioCombine=m=>{const{waveRef:b,sortByStartRegions:g,regionMap:a,updateRegion:d,removeRegion:o,generateRegions:x,setSelectedRegion:v}=m,{audioClipState:C,setAudioClipState:s}=index.useAudioClipStore(),{selectedRegion:B,clipConfigurable:E,combined:p}=C,{id:n}=B,R=ahooks.useMemoizedFn(i=>{var c;if(!n)return;const t=a[n],u=a[i.id];if(t.attribute!==u.attribute){antd.message.info("\u8BF7\u9009\u62E9\u76F8\u90BB\u540C\u5C5E\u6027\u7247\u6BB5");return}const l=g.filter(e=>e.attribute===t.attribute),A=l.findIndex(e=>e.id===n),h=l.findIndex(e=>e.id===i.id);if(Math.abs(A-h)!==1){antd.message.info("\u8BF7\u9009\u62E9\u76F8\u90BB\u540C\u5C5E\u6027\u7247\u6BB5");return}const r=[];["start","end"].forEach(e=>{r.push(t[e]),r.push(u[e])});const F=Math.min(...r),I=Math.max(...r),f={id:(c=b.current)==null?void 0:c.util.getId("combined_"),start:F,end:I,attribute:t.attribute,text:[t.text,u.text].includes("")?`${t.text}${u.text}`:`${t.text}
2
- ${u.text}`};d==null||d(f),o==null||o(n),o==null||o(u.id),x(),s({combined:!1}),v({id:f.id,playImmediately:!0})}),y=ahooks.useMemoizedFn(i=>{if(!!E&&i.altKey&&i.keyCode===EKeyCode.Z){if(!n){antd.message.info("\u8BF7\u5148\u9009\u62E9\u9700\u8981\u5408\u5E76\u7684\u533A\u95F4");return}s({combined:!0,segment:!1})}});return React.useEffect(()=>{p&&s({combined:!1})},[n]),ahooks.useEventListener("keydown",y),{combineInstance:R}};module.exports=useAudioCombine;
1
+ "use strict";var antd=require("antd"),lbAnnotation=require("@labelbee/lb-annotation"),index=require("../../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),React=require("react"),_=require("lodash");const EKeyCode=lbAnnotation.cKeyCode.default,useAudioCombine=C=>{const{waveRef:v,sortByStartRegions:y,regionMap:m,updateRegion:g,removeRegion:a,generateRegions:p,setSelectedRegion:E}=C,{audioClipState:B,setAudioClipState:b}=index.useAudioClipStore(),{selectedRegion:h,clipConfigurable:A,combined:R,clipTextList:k}=B,{id:u}=h,F=(i,d,c)=>{const e=_.cloneDeep(i);return k.forEach((t,l)=>{const o=d[t.key],s=c[t.key],f=[o,s].includes("")?`${o}${s}`:`${o}
2
+ ${s}`;l===0?Object.assign(e,{text:f}):Object.assign(e,{[t.key]:f})}),e},$=ahooks.useMemoizedFn(i=>{var d,c;if(!u)return;const e=m[u],t=m[i.id];if(e.attribute!==t.attribute){antd.message.info("\u8BF7\u9009\u62E9\u76F8\u90BB\u540C\u5C5E\u6027\u7247\u6BB5");return}const l=y.filter(n=>n.attribute===e.attribute),o=l.findIndex(n=>n.id===u),s=l.findIndex(n=>n.id===i.id);if(Math.abs(o-s)!==1){antd.message.info("\u8BF7\u9009\u62E9\u76F8\u90BB\u540C\u5C5E\u6027\u7247\u6BB5");return}const r=[];["start","end"].forEach(n=>{r.push(e[n]),r.push(t[n])});const q=Math.min(...r),w=Math.max(...r),M={id:(d=v.current)==null?void 0:d.util.getId("combined_"),start:q,end:w,attribute:e.attribute,text:[e.text,t.text].includes("")?`${e.text}${t.text}`:`${e.text}
3
+ ${t.text}`,subAttribute:(c=t.subAttribute)!=null?c:{}},x=F(M,e,t);g==null||g(x),a==null||a(u),a==null||a(t.id),p(),b({combined:!1}),E({id:x.id,playImmediately:!0})}),I=ahooks.useMemoizedFn(i=>{if(!!A&&i.altKey&&i.keyCode===EKeyCode.Z){if(!u){antd.message.info("\u8BF7\u5148\u9009\u62E9\u9700\u8981\u5408\u5E76\u7684\u533A\u95F4");return}b({combined:!0,segment:!1})}});return React.useEffect(()=>{R&&b({combined:!1})},[u]),ahooks.useEventListener("keydown",I),{combineInstance:$}};module.exports=useAudioCombine;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),antd=require("antd"),lbAnnotation=require("@labelbee/lb-annotation"),index=require("../../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks");const EKeyCode=lbAnnotation.cKeyCode.default,useAudioSegment=R=>{const{waveRef:r,regionMap:m,updateRegion:a,removeRegion:b,generateRegions:p,setSelectedRegion:_}=R,{audioClipState:y,setAudioClipState:c}=index.useAudioClipStore(),{selectedRegion:C,clipConfigurable:E,segment:g}=y,{id:e}=C,v=React.useRef(null),l=React.useRef(null);React.useEffect(()=>{var t,u,i,o,n,s,d;if(l.current&&r.current&&g&&e){const f=(s=(i=(u=(t=r.current)==null?void 0:t.regions)==null?void 0:u.util)==null?void 0:i.getRegionSnapToGridValue)==null?void 0:s.call(i,((o=r.current)==null?void 0:o.drawer.handleEvent(l.current))*((n=r.current)==null?void 0:n.getDuration())),M=(d=m[e])!=null?d:{},{start:S,end:k}=M;if(f>S&&f<k){v.current=f;return}}v.current=null},[l.current,g]);const F=ahooks.useMemoizedFn((t,u)=>{var i,o;if(!e||e!==t.id){antd.message.info("\u8BF7\u70B9\u51FB\u6240\u9009\u533A\u95F4");return}const n=m[e],s={id:(i=r.current)==null?void 0:i.util.getId("segment_"),start:n.start,end:u,attribute:n.attribute,text:n.text},d={id:(o=r.current)==null?void 0:o.util.getId("segment_"),start:u,end:n.end,attribute:n.attribute,text:""};a==null||a(s),a==null||a(d),b==null||b(e),p(),c({segment:!1}),_({id:s.id,playImmediately:!0})}),x=ahooks.useMemoizedFn(t=>{if(!!E&&t.altKey&&t.keyCode===EKeyCode.X){if(!e){antd.message.info("\u8BF7\u5148\u9009\u62E9\u9700\u8981\u5206\u5272\u7684\u533A\u95F4");return}c({segment:!0,combined:!1})}}),A=ahooks.useMemoizedFn((t,u)=>{l.current=u});return ahooks.useEventListener("keydown",x),React.useEffect(()=>{g&&c({segment:!1})},[e]),{segmentInstance:F,onRegionMouseMove:A,segmentTimeTip:v.current}};module.exports=useAudioSegment;
1
+ "use strict";var React=require("react"),antd=require("antd"),lbAnnotation=require("@labelbee/lb-annotation"),index=require("../../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),dataTransform=require("../../audioAnnotate/utils/dataTransform.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(r,e,t)=>e in r?__defProp(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,__spreadValues=(r,e)=>{for(var t in e||(e={}))__hasOwnProp.call(e,t)&&__defNormalProp(r,t,e[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(e))__propIsEnum.call(e,t)&&__defNormalProp(r,t,e[t]);return r},__spreadProps=(r,e)=>__defProps(r,__getOwnPropDescs(e));const EKeyCode=lbAnnotation.cKeyCode.default,useAudioSegment=r=>{const{waveRef:e,regionMap:t,updateRegion:d,removeRegion:y,generateRegions:R,setSelectedRegion:w}=r,{audioClipState:O,setAudioClipState:v}=index.useAudioClipStore(),{selectedRegion:P,clipConfigurable:T,segment:p,clipTextList:C,subAttributeList:A,secondaryAttributeConfigurable:E=!1}=O,{id:n}=P,m=React.useRef(null),g=React.useRef(null);React.useEffect(()=>{var u,o,i,l,c,s,f;if(g.current&&e.current&&p&&n){const a=(s=(i=(o=(u=e.current)==null?void 0:u.regions)==null?void 0:o.util)==null?void 0:i.getRegionSnapToGridValue)==null?void 0:s.call(i,((l=e.current)==null?void 0:l.drawer.handleEvent(g.current))*((c=e.current)==null?void 0:c.getDuration())),_=(f=t[n])!=null?f:{},{start:b,end:B}=_;if(a>b&&a<B){m.current=a;return}}m.current=null},[g.current,p]);const x=ahooks.useMemoizedFn((u,o)=>{var i,l,c;if(!n||n!==u.id){antd.message.info("\u8BF7\u70B9\u51FB\u6240\u9009\u533A\u95F4");return}const s=t[n],f=dataTransform.getClipTextByConfig(s,C),a=__spreadProps(__spreadValues({},f),{id:(i=e.current)==null?void 0:i.util.getId("segment_"),end:o,subAttribute:(l=s.subAttribute)!=null?l:{}}),_=dataTransform.getClipTextByConfig(s,C,!0),b=__spreadProps(__spreadValues({},_),{id:(c=e.current)==null?void 0:c.util.getId("segment_"),start:o,subAttribute:lbAnnotation.TagUtils.getDefaultResultByConfig(E?A!=null?A:[]:[])});d==null||d(a),d==null||d(b),y==null||y(n),R(),v({segment:!1}),w({id:a.id,playImmediately:!0})}),F=ahooks.useMemoizedFn(u=>{if(!!T&&u.altKey&&u.keyCode===EKeyCode.X){if(!n){antd.message.info("\u8BF7\u5148\u9009\u62E9\u9700\u8981\u5206\u5272\u7684\u533A\u95F4");return}v({segment:!0,combined:!1})}}),S=ahooks.useMemoizedFn((u,o)=>{g.current=o});return ahooks.useEventListener("keydown",F),React.useEffect(()=>{p&&v({segment:!1})},[n]),{segmentInstance:x,onRegionMouseMove:S,segmentTimeTip:m.current}};module.exports=useAudioSegment;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),antd=require("antd"),ahooks=require("ahooks"),index=require("../../constant/index.js"),icons=require("@ant-design/icons");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const longTextCls=`${index.prefix}-longText`,LongText=e=>{var t,r;const{text:a,placement:l="bottom",icon:u=React__default.default.createElement(icons.SearchOutlined,null),openByText:f,style:i,isToolTips:d,wordCount:s}=e,o=React.useRef(null);ahooks.useSize(o);const c=o.current&&((t=o.current)==null?void 0:t.clientWidth)<((r=o.current)==null?void 0:r.scrollWidth);if(s)if((a==null?void 0:a.length)>s){const n=a.slice(0,s);return React__default.default.createElement(antd.Popover,{placement:l,overlayClassName:`${longTextCls}-popover`,content:a},React__default.default.createElement("span",{style:{cursor:"pointer",whiteSpace:"pre-wrap"}},n,"..."))}else return React__default.default.createElement("div",{style:{whiteSpace:"pre-wrap"}}," ",a);if(f){let n={placement:l,overlayClassName:`${longTextCls}-popover`,content:a,key:`${c}`};c||Object.assign(n,{open:!1});const p=React__default.default.createElement("div",{className:`${longTextCls}-text`,style:i,ref:o},a);return d?React__default.default.createElement(antd.Tooltip,__spreadProps(__spreadValues({},n),{title:a}),p):React__default.default.createElement(antd.Popover,__spreadValues({},n),p)}return React__default.default.createElement("div",{className:longTextCls,style:i},React__default.default.createElement("div",{className:`${longTextCls}-text`,ref:o},a),c&&React__default.default.createElement(antd.Popover,{placement:l,overlayClassName:`${longTextCls}-popover`,content:a},u))};module.exports=LongText;
1
+ "use strict";var React=require("react"),antd=require("antd"),ahooks=require("ahooks"),index=require("../../constant/index.js"),icons=require("@ant-design/icons");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__objRest=(e,t)=>{var r={};for(var n in e)__hasOwnProp.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&__getOwnPropSymbols)for(var n of __getOwnPropSymbols(e))t.indexOf(n)<0&&__propIsEnum.call(e,n)&&(r[n]=e[n]);return r};const longTextCls=`${index.prefix}-longText`,TextDom=React.forwardRef((e,t)=>{var r=e,{text:n,overflowMaxLines:c,style:o}=r,f=__objRest(r,["text","overflowMaxLines","style"]);const a={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},l={display:"-webkit-box",WebkitLineClamp:c,WebkitBoxOrient:"vertical",overflow:"hidden"},u=c>1?l:a,s=__spreadValues(__spreadValues({},u),o!=null?o:{});return React__default.default.createElement("div",__spreadValues({style:s,ref:t},f),n)}),LongText=e=>{const{text:t,placement:r="bottom",icon:n=React__default.default.createElement(icons.SearchOutlined,null),openByText:c,style:o,isToolTips:f,overflowMaxLines:a=1}=e,l=React.useRef(null),u=ahooks.useSize(l),s=React.useMemo(()=>{var i,d,v,p;return a>1?l.current&&((i=l.current)==null?void 0:i.clientHeight)<((d=l.current)==null?void 0:d.scrollHeight):l.current&&((v=l.current)==null?void 0:v.clientWidth)<((p=l.current)==null?void 0:p.scrollWidth)},[u]);if(c){let i={placement:r,overlayClassName:`${longTextCls}-popover`,content:t,key:`${s}`};return s||Object.assign(i,{open:!1}),f?React__default.default.createElement(antd.Tooltip,__spreadProps(__spreadValues({},i),{title:t}),React__default.default.createElement(TextDom,{overflowMaxLines:a,style:o,ref:l,text:t})):React__default.default.createElement(antd.Popover,__spreadValues({},i),React__default.default.createElement(TextDom,{overflowMaxLines:a,style:o,ref:l,text:t}))}return React__default.default.createElement("div",{className:longTextCls,style:o},React__default.default.createElement(TextDom,{overflowMaxLines:a,style:o,ref:l,text:t}),s&&React__default.default.createElement(antd.Popover,{placement:r,overlayClassName:`${longTextCls}-popover`,content:t},n))};module.exports=LongText;
@@ -1 +1 @@
1
- "use strict";var ahooks=require("ahooks"),es=require("antd/es"),React=require("react"),reactRedux=require("react-redux"),usePointCloudViews=require("../pointCloudView/hooks/usePointCloudViews.js"),PointCloudContext=require("../pointCloudView/PointCloudContext.js"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,r,t)=>r in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,__spreadValues=(e,r)=>{for(var t in r||(r={}))__hasOwnProp.call(r,t)&&__defNormalProp(e,t,r[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(r))__propIsEnum.call(r,t)&&__defNormalProp(e,t,r[t]);return e},__spreadProps=(e,r)=>__defProps(e,__getOwnPropDescs(r));const PointCloud2DRectOperationView=e=>{var r;const{mappingData:t,size:i,config:P,checkMode:C,afterImgOnLoad:g}=e,l=(r=t==null?void 0:t.url)!=null?r:"",{pointCloudBoxList:s,setPointCloudResult:w}=React.useContext(PointCloudContext.PointCloudContext),{update2DViewRect:R}=usePointCloudViews.usePointCloudViews(),c=React__default.default.useRef(null),o=React.useRef(null),d=ahooks.useLatest(R),p=React.useRef(null),[O,b]=React.useState(!0),f=n=>{var a;const u=(a=d.current)==null?void 0:a.call(d,n);p.current=u,w(u)},m=()=>{var n;let a=[];s.forEach(u=>{const{rects:D=[],id:v,attribute:x,trackID:h}=u,_=D.find(V=>V.imageName===(t==null?void 0:t.path)),y=v+"_"+(t==null?void 0:t.path);_&&(a=[...a,__spreadProps(__spreadValues({},_),{boxID:v,id:y,attribute:x,order:h})])}),(n=o.current)==null||n.setResult(a)};return React.useEffect(()=>{if(c.current){const n=new lbAnnotation.PointCloud2DRectOperation({container:c.current,size:i,config:__spreadProps(__spreadValues({},P),{isShowOrder:!0,attributeConfigurable:!0}),checkMode:C});return o.current=n,o.current.init(),o.current.on("updateDragResult",f),()=>{var a,u;(a=o.current)==null||a.unbind("updateDragResult",f),(u=o.current)==null||u.destroy()}}},[]),React.useEffect(()=>{o.current&&l&&lbAnnotation.ImgUtils.load(l).then(n=>{o.current.setImgNode(n),g(n),b(!1)})},[l]),React.useEffect(()=>{var n;(n=o.current)==null||n.setSize(i)},[i]),React.useEffect(()=>{s!==p.current&&m()},[s,l]),React__default.default.createElement(es.Spin,{spinning:O},React__default.default.createElement("div",{ref:c,style:__spreadValues({position:"relative"},i)}))};var PointCloud2DRectOperationView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DRectOperationView);module.exports=PointCloud2DRectOperationView$1;
1
+ "use strict";var ahooks=require("ahooks"),es=require("antd/es"),React=require("react"),reactRedux=require("react-redux"),usePointCloudViews=require("../pointCloudView/hooks/usePointCloudViews.js"),PointCloudContext=require("../pointCloudView/PointCloudContext.js"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,i,l)=>i in u?__defProp(u,i,{enumerable:!0,configurable:!0,writable:!0,value:l}):u[i]=l,__spreadValues=(u,i)=>{for(var l in i||(i={}))__hasOwnProp.call(i,l)&&__defNormalProp(u,l,i[l]);if(__getOwnPropSymbols)for(var l of __getOwnPropSymbols(i))__propIsEnum.call(i,l)&&__defNormalProp(u,l,i[l]);return u},__spreadProps=(u,i)=>__defProps(u,__getOwnPropDescs(i)),__async=(u,i,l)=>new Promise((a,d)=>{var v=s=>{try{p(l.next(s))}catch(f){d(f)}},D=s=>{try{p(l.throw(s))}catch(f){d(f)}},p=s=>s.done?a(s.value):Promise.resolve(s.value).then(v,D);p((l=l.apply(u,i)).next())});const PointCloud2DRectOperationView=u=>{var i,l;const{mappingData:a,size:d,config:v,checkMode:D,afterImgOnLoad:p,shouldExcludePointCloudBoxListUpdate:s}=u,f=(i=a==null?void 0:a.url)!=null?i:"",_=(l=a==null?void 0:a.fallbackUrl)!=null?l:"",{pointCloudBoxList:w,setPointCloudResult:I,defaultAttribute:P,rectList:h,addRectIn2DView:q,updateRectIn2DView:O,removeRectIn2DView:B}=React.useContext(PointCloudContext.PointCloudContext),{update2DViewRect:M,remove2DViewRect:z}=usePointCloudViews.usePointCloudViews(),x=React__default.default.useRef(null),r=React.useRef(null),E=ahooks.useMemoizedFn(M),g=ahooks.useMemoizedFn(z),R=React.useRef(null),[A,L]=React.useState(!0),C=React.useMemo(()=>h==null?void 0:h.filter(e=>e.imageName===(a==null?void 0:a.path)),[a==null?void 0:a.path,h]),b=ahooks.useLatest(a==null?void 0:a.path),V=e=>{const{boxID:o}=e;if(!s&&o){const t=E==null?void 0:E(e);R.current=t,I(t);return}O(e,!0)},S=e=>{b.current&&q(__spreadProps(__spreadValues({},e),{imageName:b.current}))},N=e=>{if(e.length===0)return;if(!s){const t=e.find(n=>n.boxID);if(t){const n=g==null?void 0:g(t);R.current=n,I(n),m();return}}const o=e.find(t=>t.extId);if(o){const{imageName:t,extId:n}=o,c=g==null?void 0:g({boxID:n,imageName:t});R.current=c,I(c)}B(e)},F=ahooks.useMemoizedFn(()=>{let e=[];return w.forEach(o=>{const{rects:t=[],id:n,attribute:c,trackID:y}=o,j=t.find(k=>k.imageName===b.current),U=n+"_"+b.current;j&&(e=[...e,__spreadProps(__spreadValues({},j),{boxID:n,id:U,attribute:c,order:y})])}),e}),m=ahooks.useMemoizedFn(()=>{var e,o,t;const n=s?[]:F(),c=(e=r.current)==null?void 0:e.selectedRectID;(o=r.current)==null||o.setResult([...n,...C]),c&&((t=r.current)==null||t.setSelectedRectID(c))});return React.useEffect(()=>{if(x.current){const e=new lbAnnotation.PointCloud2DRectOperation({container:x.current,size:d,config:__spreadProps(__spreadValues({},v),{isShowOrder:!0,attributeConfigurable:!0}),checkMode:D});return r.current=e,r.current.init(),r.current.on("updateDragResult",V),r.current.on("afterAddingDrawingRect",S),r.current.on("deleteSelectedRects",N),()=>{var o,t,n,c;(o=r.current)==null||o.unbind("updateDragResult",V),(t=r.current)==null||t.unbind("afterAddingDrawingRect",S),(n=r.current)==null||n.unbind("deleteSelectedRects",N),(c=r.current)==null||c.destroy()}}},[]),React.useEffect(()=>{const e=t=>__async(void 0,null,function*(){try{return yield lbAnnotation.ImgUtils.load(t)}catch(n){return console.error("Error loading image:",n),null}}),o=()=>__async(void 0,null,function*(){var t;L(!0);let n=yield e(f);!n&&_&&(n=yield e(_)),n&&((t=r.current)==null||t.setImgNode(n),p(n)),L(!1)});r.current&&(f||_)&&o()},[f,_]),React.useEffect(()=>{var e;(e=r.current)==null||e.setSize(d)},[d]),React.useEffect(()=>{w!==R.current&&m()},[w]),React.useEffect(()=>{var e,o,t;const n=C.find(c=>c.id===r.current.selectedRectID);(o=(e=r.current)==null?void 0:e.setDefaultAttribute)==null||o.call(e,P),n&&O(__spreadProps(__spreadValues({},(t=r.current)==null?void 0:t.selectedRect),{attribute:P})),m()},[P]),React.useEffect(()=>{m()},[C]),React.useEffect(()=>{m()},[s]),React.useEffect(()=>{var e,o,t,n;const c=(o=(e=r.current)==null?void 0:e.config)!=null?o:{},y=__spreadProps(__spreadValues({},c),{attributeList:(t=v.attributeList)!=null?t:[]});(n=r.current)==null||n.setConfig(JSON.stringify(y))},[v.attributeList]),React__default.default.createElement(es.Spin,{spinning:A},React__default.default.createElement("div",{ref:x,style:__spreadValues({position:"relative"},d)}))};var PointCloud2DRectOperationView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DRectOperationView);module.exports=PointCloud2DRectOperationView$1;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),React=require("react"),index=require("../AnnotationView/index.js"),useSize=require("../../hooks/useSize.js"),useSingleBox=require("./hooks/useSingleBox.js"),useHighlight=require("./hooks/useHighlight.js"),index$2=require("./components/HighlightVisible/index.js"),PointCloudContext=require("./PointCloudContext.js"),index$1=require("../pointCloud2DRectOperationView/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__async=(e,s,o)=>new Promise((c,a)=>{var d=t=>{try{i(o.next(t))}catch(n){a(n)}},u=t=>{try{i(o.throw(t))}catch(n){a(n)}},i=t=>t.done?c(t.value):Promise.resolve(t.value).then(d,u);i((o=o.apply(e,s)).next())});const PointCloud2DSingleView=({view2dData:e,setSelectedID:s,currentData:o,showEnlarge:c,checkMode:a=!1,measureVisible:d})=>{var u;const i=React.useRef(null),t=React.useRef(),{selectedBox:n}=useSingleBox.useSingleBox(),g=useSize(i),{url:h,calib:v,path:y}=e,{toggle2dVisible:j,isHighlightVisible:q}=useHighlight.useHighlight({currentData:o}),[S,m]=React.useState(!1),{cuboidBoxIn2DView:P,cacheImageNodeSize:_}=React.useContext(PointCloudContext.PointCloudContext),k=!e,x=r=>{f(),_({path:y,imgNode:r})},f=React.useCallback(()=>{var r,p;const C=(r=t.current)==null?void 0:r.toolInstance;if(s(""),!n||!C)return;const l=e.annotations.find(V=>V.annotation.id===n.info.id);let b="";l&&((p=l==null?void 0:l.annotation.pointList)==null?void 0:p.length)>0&&(C.focusPositionByPointList(l==null?void 0:l.annotation.pointList),b=n.info.id,s(b))},[n,t.current,e.annotations]);React.useEffect(()=>{f()},[f]);const B=()=>__async(void 0,null,function*(){m(!0),yield j(h,v),m(!1)});return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image"),ref:i},P?React__default.default.createElement(index,{src:(u=e==null?void 0:e.url)!=null?u:"",annotations:e.annotations,size:g,ref:t,globalStyle:{display:k?"none":"block"},afterImgOnLoad:x,zoomInfo:{min:.01,max:1e3,ratio:.4},measureVisible:d}):React__default.default.createElement(index$1,{mappingData:e,size:g,checkMode:a,afterImgOnLoad:x}),v&&React__default.default.createElement(index$2,{visible:q(h),onClick:B,loading:S,style:{position:"absolute",right:16,top:16,zIndex:c?-1:101}}))};module.exports=PointCloud2DSingleView;
1
+ "use strict";var dom=require("../../utils/dom.js"),React=require("react"),index=require("../AnnotationView/index.js"),useSize=require("../../hooks/useSize.js"),useSingleBox=require("./hooks/useSingleBox.js"),useHighlight=require("./hooks/useHighlight.js"),index$2=require("./components/HighlightVisible/index.js"),PointCloudContext=require("./PointCloudContext.js"),useDataLinkSwitch=require("./hooks/useDataLinkSwitch.js"),index$1=require("../pointCloud2DRectOperationView/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__async=(e,u,i)=>new Promise((l,s)=>{var f=t=>{try{o(i.next(t))}catch(n){s(n)}},r=t=>{try{o(i.throw(t))}catch(n){s(n)}},o=t=>t.done?l(t.value):Promise.resolve(t.value).then(f,r);o((i=i.apply(e,u)).next())});const PointCloud2DSingleView=({view2dData:e,setSelectedID:u,currentData:i,showEnlarge:l,checkMode:s=!1,measureVisible:f})=>{var r,o;const t=React.useRef(null),n=React.useRef(),{selectedBox:c}=useSingleBox.useSingleBox(),m=useSize(t),{url:p,fallbackUrl:x,calib:v,path:y}=e,{toggle2dVisible:j,isHighlightVisible:q}=useHighlight.useHighlight({currentData:i}),[P,b]=React.useState(!1),{cuboidBoxIn2DView:h,cacheImageNodeSize:_}=React.useContext(PointCloudContext.PointCloudContext),B=!e,V=React.useMemo(()=>({zIndex:l?-1:101,is2DView:!h,imageName:e.path}),[l,h,e.path]),{rendered:z,isLinking:I}=useDataLinkSwitch(V),k=d=>{g(),_({path:y,imgNode:d})},g=React.useCallback(()=>{var d,C;const L=(d=n.current)==null?void 0:d.toolInstance;if(u(""),!c||!L)return;const a=e.annotations.find(E=>E.annotation.id===c.info.id);let S="";a&&((C=a==null?void 0:a.annotation.pointList)==null?void 0:C.length)>0&&(L.focusPositionByPointList(a==null?void 0:a.annotation.pointList),S=c.info.id,u(S))},[c,n.current,e.annotations]);React.useEffect(()=>{g()},[g]);const R=()=>__async(void 0,null,function*(){b(!0),yield j(p,x!=null?x:"",v),b(!1)});return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image"),ref:t},h?React__default.default.createElement(index,{src:(r=e==null?void 0:e.url)!=null?r:"",fallbackSrc:(o=e==null?void 0:e.fallbackUrl)!=null?o:"",annotations:e.annotations,size:m,ref:n,globalStyle:{display:B?"none":"block"},afterImgOnLoad:k,zoomInfo:{min:.01,max:1e3,ratio:.4},measureVisible:f}):React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$1,{shouldExcludePointCloudBoxListUpdate:!I,mappingData:e,size:m,checkMode:s,afterImgOnLoad:k}),!s&&z),v&&React__default.default.createElement(index$2,{visible:q(p),onClick:R,loading:P,style:{position:"absolute",right:16,top:16,zIndex:l?-1:101}}))};module.exports=PointCloud2DSingleView;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),reactRedux=require("react-redux"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),map=require("../../store/annotation/map.js"),lbUtils=require("@labelbee/lb-utils"),PointCloud2DSingleView=require("./PointCloud2DSingleView.js"),index=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons"),classNames=require("classnames"),icon_esc=require("../../assets/annotation/common/icon_esc.svg.js"),icon_left_squareOutlined=require("../../assets/annotation/common/icon_left_squareOutlined.svg.js"),icon_right_squareOutlined=require("../../assets/annotation/common/icon_right_squareOutlined.svg.js"),_=require("lodash");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,l,t)=>l in e?__defProp(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,__spreadValues=(e,l)=>{for(var t in l||(l={}))__hasOwnProp.call(l,t)&&__defNormalProp(e,t,l[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(l))__propIsEnum.call(l,t)&&__defNormalProp(e,t,l[t]);return e},__spreadProps=(e,l)=>__defProps(e,__getOwnPropDescs(l));const EKeyCode=lbAnnotation.cKeyCode.default,ContainerTitle=({showEnlarge:e,isEnlargeTopView:l,data:t,setIsEnlarge:g,setCurIndex:f,curIndex:p=0,index:w,annotations2d:b})=>l?React__default.default.createElement(index,{title:t==null?void 0:t.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{g(!1),f(void 0)}}),React__default.default.createElement("span",null,t==null?void 0:t.calName),React__default.default.createElement("span",{style:{marginLeft:"8px"}},p+1,"/",b==null?void 0:b.length)):React__default.default.createElement(index,{title:t==null?void 0:t.calName,onClick:()=>{g(!0),f(w)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),PointCloud2DView=({currentData:e,config:l,thumbnailWidth:t,isEnlargeTopView:g,highlightAttribute:f,loadPCDFileLoading:p,checkMode:w,measureVisible:b})=>{var L;const[c,H]=React.useState([]),{topViewInstance:M,displayPointCloudList:q,polygonList:F,imageSizes:O,selectedIDs:S}=React.useContext(PointCloudContext.PointCloudContext),[x,U]=React.useState(""),[y,P]=React.useState(!1),[s,E]=React.useState(void 0);React.useEffect(()=>{var o;if(!p&&M&&(e==null?void 0:e.mappingImgList)&&((o=e==null?void 0:e.mappingImgList)==null?void 0:o.length)>0){const i={fill:"transparent",color:"green"};let r=[];e==null||e.mappingImgList.forEach(n=>{var v,N,R;const V=q.reduce((d,u)=>{var m,a;const C=u.id===x||f===u.attribute,{transferViewData:z,viewRangePointList:h}=(m=lbAnnotation.pointCloudLidar2image(u,n.calib,{createRange:C}))!=null?m:{};if(!z||!h)return[];const T=(a=lbUtils.toolStyleConverter.getColorFromConfig({attribute:u.attribute},__spreadProps(__spreadValues({},l),{attributeConfigurable:!0}),{}))==null?void 0:a.stroke,Q=$({viewDataPointList:z,pointCloudBox:u,defaultViewStyle:i,stroke:T}),K=[...d,...Q];return(h==null?void 0:h.length)>0&&K.unshift({type:"polygon",annotation:__spreadProps(__spreadValues({id:x,pointList:h},i),{stroke:T,fill:"rgba(255, 255, 255, 0.6)"})}),K},[]),A=O[(v=n==null?void 0:n.path)!=null?v:""];A&&_.isNumber((N=n==null?void 0:n.calib)==null?void 0:N.groundHeight)&&F.forEach(d=>{const u=d.pointList.map(a=>{var C;return __spreadProps(__spreadValues({},a),{z:(C=n==null?void 0:n.calib)==null?void 0:C.groundHeight})}),m=lbAnnotation.pointListLidar2Img(u,n==null?void 0:n.calib,A);if(m){const a=lbUtils.toolStyleConverter.getColorFromConfig({attribute:d.attribute},__spreadProps(__spreadValues({},l),{attributeConfigurable:!0}),{});V.push({type:"polygon",annotation:__spreadProps(__spreadValues({id:d.id,pointList:m},i),{stroke:a==null?void 0:a.stroke,fill:S.includes(d.id)?a==null?void 0:a.fill:"rgba(255, 255, 255, 0.6)"})})}}),r.push({annotations:V,url:n==null?void 0:n.url,calName:(R=n==null?void 0:n.calib)==null?void 0:R.calName,calib:n==null?void 0:n.calib,path:n==null?void 0:n.path})}),H(r)}},[q,e==null?void 0:e.mappingImgList,x,f,p,F,O,S]),React.useEffect(()=>(window.addEventListener("keydown",k),()=>{window.removeEventListener("keydown",k)}),[s]);const k=o=>{const{keyCode:i}=o;switch(i){case EKeyCode.Esc:y&&P(!1);break;case EKeyCode.Left:I();break;case EKeyCode.Right:j();break}},I=()=>{s===void 0||!y||Number(s)>0&&E(s-1)},j=()=>{s===void 0||!y||Number(s)<(c==null?void 0:c.length)-1&&E(s+1)},$=({viewDataPointList:o,pointCloudBox:i,defaultViewStyle:r,stroke:n})=>o?o.map(v=>({type:v.type,annotation:__spreadProps(__spreadValues({id:i.id,pointList:v.pointList},r),{stroke:n})})):[],G=!e||!(e==null?void 0:e.mappingImgList)||!(((L=e==null?void 0:e.mappingImgList)==null?void 0:L.length)>0),J=React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},React__default.default.createElement("img",{src:icon_left_squareOutlined,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>I()}),React__default.default.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("img",{src:icon_right_squareOutlined,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>j()}),React__default.default.createElement("img",{src:icon_esc,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{P(!1),E(void 0)}}),React__default.default.createElement("span",null,"\u952E\u9000\u51FA"));return(c==null?void 0:c.length)>0?React__default.default.createElement(React__default.default.Fragment,null,c.map((o,i)=>{const r=y&&i===s;return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-2d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:r}),title:React__default.default.createElement(ContainerTitle,{showEnlarge:r,isEnlargeTopView:g,data:o,setIsEnlarge:P,setCurIndex:E,curIndex:s,index:i,annotations2d:c}),titleOnSurface:!r,style:{display:G?"none":"flex",width:r?"100%":t},key:i,toolbar:J},(o==null?void 0:o.annotations)&&(o==null?void 0:o.url)&&React__default.default.createElement(PointCloud2DSingleView,{currentData:e,view2dData:o,setSelectedID:U,showEnlarge:r,checkMode:w,measureVisible:b}))})):null};var PointCloud2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DView);module.exports=PointCloud2DView$1;
1
+ "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),reactRedux=require("react-redux"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),map=require("../../store/annotation/map.js"),lbUtils=require("@labelbee/lb-utils"),PointCloud2DSingleView=require("./PointCloud2DSingleView.js"),index$1=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons"),classNames=require("classnames"),icon_esc=require("../../assets/annotation/common/icon_esc.svg.js"),icon_left_squareOutlined=require("../../assets/annotation/common/icon_left_squareOutlined.svg.js"),icon_right_squareOutlined=require("../../assets/annotation/common/icon_right_squareOutlined.svg.js"),_=require("lodash"),index=require("../../utils/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,l,n)=>l in e?__defProp(e,l,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[l]=n,__spreadValues=(e,l)=>{for(var n in l||(l={}))__hasOwnProp.call(l,n)&&__defNormalProp(e,n,l[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(l))__propIsEnum.call(l,n)&&__defNormalProp(e,n,l[n]);return e},__spreadProps=(e,l)=>__defProps(e,__getOwnPropDescs(l));const EKeyCode=lbAnnotation.cKeyCode.default,ContainerTitle=({showEnlarge:e,isEnlargeTopView:l,data:n,setIsEnlarge:m,setCurIndex:f,curIndex:p=0,index:w,annotations2d:b})=>l?React__default.default.createElement(index$1,{title:n==null?void 0:n.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{m(!1),f(void 0)}}),React__default.default.createElement("span",null,n==null?void 0:n.calName),React__default.default.createElement("span",{style:{marginLeft:"8px"}},p+1,"/",b==null?void 0:b.length)):React__default.default.createElement(index$1,{title:n==null?void 0:n.calName,onClick:()=>{m(!0),f(w)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),PointCloud2DView=({currentData:e,config:l,thumbnailWidth:n,isEnlargeTopView:m,highlightAttribute:f,loadPCDFileLoading:p,checkMode:w,measureVisible:b})=>{var I;const[d,M]=React.useState([]),{topViewInstance:B,displayPointCloudList:k,polygonList:F,imageSizes:x,selectedIDs:O}=React.useContext(PointCloudContext.PointCloudContext),[P,G]=React.useState(""),[y,L]=React.useState(!1),[s,E]=React.useState(void 0);React.useEffect(()=>{var o;if(!p&&B&&(e==null?void 0:e.mappingImgList)&&((o=e==null?void 0:e.mappingImgList)==null?void 0:o.length)>0){const r={fill:"transparent",color:"green"};let i=[];e==null||e.mappingImgList.forEach(t=>{var v,R,V,A;const z=k.reduce((a,c)=>{var g,u;const h=c.id===P||f===c.attribute,{transferViewData:q,viewRangePointList:C}=(g=lbAnnotation.pointCloudLidar2image(c,t.calib,{createRange:h}))!=null?g:{};if(!q||!C)return[];const X=q.reduce((H,$)=>$.type==="line"?[...H,...$.pointList]:H,[]),Y=__spreadProps(__spreadValues({},index.getBoundingRect(X)),{imageName:t.path});if(!index.isBoundingRectInImage(Y,t.path,x))return a;const K=(u=lbUtils.toolStyleConverter.getColorFromConfig({attribute:c.attribute},__spreadProps(__spreadValues({},l),{attributeConfigurable:!0}),{}))==null?void 0:u.stroke,Z=J({viewDataPointList:q,pointCloudBox:c,defaultViewStyle:r,stroke:K}),U=[...a,...Z];return(C==null?void 0:C.length)>0&&U.unshift({type:"polygon",annotation:__spreadProps(__spreadValues({id:P,pointList:C},r),{stroke:K,fill:"rgba(255, 255, 255, 0.6)"})}),U},[]),T=x[(v=t==null?void 0:t.path)!=null?v:""];T&&_.isNumber((R=t==null?void 0:t.calib)==null?void 0:R.groundHeight)&&F.forEach(a=>{const c=a.pointList.map(u=>{var h;return __spreadProps(__spreadValues({},u),{z:(h=t==null?void 0:t.calib)==null?void 0:h.groundHeight})}),g=lbAnnotation.pointListLidar2Img(c,t==null?void 0:t.calib,T);if(g){const u=lbUtils.toolStyleConverter.getColorFromConfig({attribute:a.attribute},__spreadProps(__spreadValues({},l),{attributeConfigurable:!0}),{});z.push({type:"polygon",annotation:__spreadProps(__spreadValues({id:a.id,pointList:g},r),{stroke:u==null?void 0:u.stroke,fill:O.includes(a.id)?u==null?void 0:u.fill:"rgba(255, 255, 255, 0.6)"})})}}),i.push({annotations:z,url:t==null?void 0:t.url,fallbackUrl:(V=t==null?void 0:t.fallbackUrl)!=null?V:"",calName:(A=t==null?void 0:t.calib)==null?void 0:A.calName,calib:t==null?void 0:t.calib,path:t==null?void 0:t.path})}),M(i)}},[k,e==null?void 0:e.mappingImgList,P,f,p,F,x,O]),React.useEffect(()=>(window.addEventListener("keydown",S),()=>{window.removeEventListener("keydown",S)}),[s]);const S=o=>{const{keyCode:r}=o;switch(r){case EKeyCode.Esc:y&&L(!1);break;case EKeyCode.Left:j();break;case EKeyCode.Right:N();break}},j=()=>{s===void 0||!y||Number(s)>0&&E(s-1)},N=()=>{s===void 0||!y||Number(s)<(d==null?void 0:d.length)-1&&E(s+1)},J=({viewDataPointList:o,pointCloudBox:r,defaultViewStyle:i,stroke:t})=>o?o.map(v=>({type:v.type,annotation:__spreadProps(__spreadValues({id:r.id,pointList:v.pointList},i),{stroke:t})})):[],Q=!e||!(e==null?void 0:e.mappingImgList)||!(((I=e==null?void 0:e.mappingImgList)==null?void 0:I.length)>0),W=React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},React__default.default.createElement("img",{src:icon_left_squareOutlined,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>j()}),React__default.default.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("img",{src:icon_right_squareOutlined,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>N()}),React__default.default.createElement("img",{src:icon_esc,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{L(!1),E(void 0)}}),React__default.default.createElement("span",null,"\u952E\u9000\u51FA"));return(d==null?void 0:d.length)>0?React__default.default.createElement(React__default.default.Fragment,null,d.map((o,r)=>{const i=y&&r===s;return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-2d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:i}),title:React__default.default.createElement(ContainerTitle,{showEnlarge:i,isEnlargeTopView:m,data:o,setIsEnlarge:L,setCurIndex:E,curIndex:s,index:r,annotations2d:d}),titleOnSurface:!i,style:{display:Q?"none":"flex",width:i?"100%":n},key:r,toolbar:W},(o==null?void 0:o.annotations)&&(o==null?void 0:o.url)&&React__default.default.createElement(PointCloud2DSingleView,{key:o.url,currentData:e,view2dData:o,setSelectedID:G,showEnlarge:i,checkMode:w,measureVisible:b}))})):null};var PointCloud2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DView);module.exports=PointCloud2DView$1;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),classNames=require("classnames"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),index=require("../../utils/index.js"),useSingleBox=require("./hooks/useSingleBox.js"),useSphere=require("./hooks/useSphere.js"),antd=require("antd"),useSize=require("../../hooks/useSize.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js"),index$1=require("./components/PointCloudSizeSlider/index.js"),index$2=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var classNames__default=_interopDefaultLegacy(classNames),React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,o,i)=>o in t?__defProp(t,o,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[o]=i,__spreadValues=(t,o)=>{for(var i in o||(o={}))__hasOwnProp.call(o,i)&&__defNormalProp(t,i,o[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(o))__propIsEnum.call(o,i)&&__defNormalProp(t,i,o[i]);return t},__spreadProps=(t,o)=>__defProps(t,__getOwnPropDescs(o));const EKeyCode=lbAnnotation.cKeyCode.default,pointCloudID="LABELBEE-POINTCLOUD",PointCloud3DContext=React__default.default.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{},followTopView:()=>{}}),PointCloudViewIcon=({perspectiveView:t})=>{const{isActive:o,setTarget3DView:i}=React.useContext(PointCloud3DContext),n=u=>classNames__default.default({[dom.getClassName("point-cloud-3d-view",u)]:!0,active:o});return React__default.default.createElement("span",{onClick:()=>{i(lbUtils.EPerspectiveView[t])},className:n(t.toLocaleLowerCase())})},PointCloud3DSideBar=({isEnlarge:t})=>{const{reset3DView:o,followTopView:i}=React.useContext(PointCloud3DContext),{t:n}=reactI18next.useTranslation(),u=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Top"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Front"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Left"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Back"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Right"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"LFT"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"RBT"})),p=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(antd.Tooltip,{title:n("CameraFollowTopView")},React__default.default.createElement("span",{onClick:()=>{i()},className:dom.getClassName("point-cloud-3d-view","followTop")})),React__default.default.createElement("span",{onClick:()=>{o()},className:dom.getClassName("point-cloud-3d-view","reset")}));return t?React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebarZoom")},p,u):React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebar")},u,p)},PointCloud3D=({currentData:t,config:o,highlightAttribute:i})=>{const n=React.useContext(PointCloudContext.PointCloudContext),[u,p]=React.useState(!0),[d,w]=React.useState(!1),m=React.useRef(null),{initPointCloud3d:E}=usePointCloudViews.usePointCloudViews(),f=useSize(m),{t:C}=reactI18next.useTranslation();React.useEffect(()=>{!n.mainViewInstance||E==null||E(f)},[f]);const{selectedBox:c}=useSingleBox.useSingleBox(),{selectedSphere:v}=useSphere.useSphere(),V=e=>{var a,l;const r=c==null?void 0:c.info;if(r){const s=__spreadValues({},r.center);s.x=s.x-.01,s.z=1e3;const g=e===lbUtils.EPerspectiveView.Top;(a=n.mainViewInstance)==null||a.updateCameraByBox(r,e,g?s:void 0)}v&&((l=n.mainViewInstance)==null||l.updateCameraBySphere(v,e))},_=()=>{var e;(e=n.mainViewInstance)==null||e.resetCamera()},h=()=>{var e,a;const l=(e=n.topViewInstance)==null?void 0:e.pointCloudInstance.camera;l&&((a=n.mainViewInstance)==null||a.applyCameraTarget(l))};React.useEffect(()=>{if(m.current&&(t==null?void 0:t.url)){let e=n.mainViewInstance;!e&&f.width&&(e=new lbAnnotation.PointCloud({container:m.current,isOrthographicCamera:!0,orthographicParams:lbUtils.PointCloudUtils.getDefaultOrthographicParams(f),config:o}),n.setMainViewInstance(e))}},[f,t]),React.useEffect(()=>{var e;if(m.current&&(t==null?void 0:t.url)&&t.result&&n.mainViewInstance){let a=n.mainViewInstance;const l=lbUtils.PointCloudUtils.getBoxParamsFromResultList(t.result);l.forEach(r=>{var s;const g=(s=lbUtils.toolStyleConverter.getColorFromConfig({attribute:r.attribute},__spreadProps(__spreadValues({},o),{attributeConfigurable:!0}),{}))==null?void 0:s.hex;a==null||a.addBoxToSense(r,g)}),a.render(),n.setPointCloudResult(l),n.setPointCloudValid((e=index.jsonParser(t.result))==null?void 0:e.valid)}},[t,n.mainViewInstance]),React.useEffect(()=>{var e,a,l,r;if(c){V(lbUtils.EPerspectiveView.Top);const s=(l=(a=(e=n.topViewInstance)==null?void 0:e.pointCloudInstance)==null?void 0:a.camera.zoom)!=null?l:1;(r=n.mainViewInstance)==null||r.updateCameraZoom(s)}},[c]),React.useEffect(()=>{var e,a,l,r;if(v){V(lbUtils.EPerspectiveView.Top);const s=(l=(a=(e=n.topViewInstance)==null?void 0:e.pointCloudInstance)==null?void 0:a.camera.zoom)!=null?l:1;(r=n.mainViewInstance)==null||r.updateCameraZoom(s)}},[v]),React.useEffect(()=>(window.addEventListener("keydown",P),()=>{window.removeEventListener("keydown",P)}),[]);const P=e=>{if(e.keyCode===EKeyCode.Esc){w(!1);return}},x=React.useMemo(()=>({reset3DView:_,setTarget3DView:V,isActive:!!c,followTopView:h}),[c,n.mainViewInstance]);React.useEffect(()=>{var e,a,l;const r=n.pointCloudBoxList.filter(s=>s.attribute===i);(r==null?void 0:r.length)>0&&((e=n.mainViewInstance)==null||e.clearHighlightBoxes(),(a=n.mainViewInstance)==null||a.highlightBoxes(r)),r.length===0&&((l=n.mainViewInstance)==null||l.clearHighlightBoxesAndRender())},[i,n.mainViewInstance]);const I=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$1,{onChange:e=>{var a;(a=n.mainViewInstance)==null||a.updatePointSize({customSize:e})}}),React__default.default.createElement("span",{style:{marginRight:8}},C("ShowArrows")),React__default.default.createElement(antd.Switch,{size:"small",checked:u,onChange:e=>{var a;p(e),(a=n.mainViewInstance)==null||a.setShowDirection(e)}}),d&&React__default.default.createElement(PointCloud3DContext.Provider,{value:x},React__default.default.createElement(PointCloud3DSideBar,{isEnlarge:d})));return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-3d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:d}),title:d?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{w(!1)}}),C("3DView")):React__default.default.createElement(index$2,{title:C("3DView"),onClick:()=>{w(!0)}}),toolbar:I},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-content")},!d&&React__default.default.createElement(PointCloud3DContext.Provider,{value:x},React__default.default.createElement(PointCloud3DSideBar,null)),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-view"),id:pointCloudID,ref:m})))};var PointCloud3DView=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud3D);module.exports=PointCloud3DView;
1
+ "use strict";var dom=require("../../utils/dom.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),classNames=require("classnames"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),index=require("../../utils/index.js"),useSingleBox=require("./hooks/useSingleBox.js"),useSphere=require("./hooks/useSphere.js"),antd=require("antd"),useSize=require("../../hooks/useSize.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js"),index$1=require("./components/PointCloudSizeSlider/index.js"),index$2=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var classNames__default=_interopDefaultLegacy(classNames),React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,o,i)=>o in t?__defProp(t,o,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[o]=i,__spreadValues=(t,o)=>{for(var i in o||(o={}))__hasOwnProp.call(o,i)&&__defNormalProp(t,i,o[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(o))__propIsEnum.call(o,i)&&__defNormalProp(t,i,o[i]);return t},__spreadProps=(t,o)=>__defProps(t,__getOwnPropDescs(o));const EKeyCode=lbAnnotation.cKeyCode.default,pointCloudID="LABELBEE-POINTCLOUD",PointCloud3DContext=React__default.default.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{},followTopView:()=>{}}),PointCloudViewIcon=({perspectiveView:t})=>{const{isActive:o,setTarget3DView:i}=React.useContext(PointCloud3DContext),n=u=>classNames__default.default({[dom.getClassName("point-cloud-3d-view",u)]:!0,active:o});return React__default.default.createElement("span",{onClick:()=>{i(lbUtils.EPerspectiveView[t])},className:n(t.toLocaleLowerCase())})},PointCloud3DSideBar=({isEnlarge:t})=>{const{reset3DView:o,followTopView:i}=React.useContext(PointCloud3DContext),{t:n}=reactI18next.useTranslation(),u=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Top"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Front"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Left"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Back"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Right"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"LFT"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"RBT"})),p=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(antd.Tooltip,{title:n("CameraFollowTopView")},React__default.default.createElement("span",{onClick:()=>{i()},className:dom.getClassName("point-cloud-3d-view","followTop")})),React__default.default.createElement("span",{onClick:()=>{o()},className:dom.getClassName("point-cloud-3d-view","reset")}));return t?React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebarZoom")},p,u):React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebar")},u,p)},PointCloud3D=({currentData:t,config:o,highlightAttribute:i})=>{const n=React.useContext(PointCloudContext.PointCloudContext),[u,p]=React.useState(!0),[d,C]=React.useState(!1),m=React.useRef(null),{initPointCloud3d:E}=usePointCloudViews.usePointCloudViews(),f=useSize(m),{t:g}=reactI18next.useTranslation();React.useEffect(()=>{!n.mainViewInstance||E==null||E(f)},[f]);const{selectedBox:c}=useSingleBox.useSingleBox(),{selectedSphere:v}=useSphere.useSphere(),V=e=>{var a,l;const r=c==null?void 0:c.info;if(r){const s=__spreadValues({},r.center);s.x=s.x-.01,s.z=1e3;const w=e===lbUtils.EPerspectiveView.Top;(a=n.mainViewInstance)==null||a.updateCameraByBox(r,e,w?s:void 0)}v&&((l=n.mainViewInstance)==null||l.updateCameraBySphere(v,e))},_=()=>{var e;(e=n.mainViewInstance)==null||e.resetCamera()},h=()=>{var e,a;const l=(e=n.topViewInstance)==null?void 0:e.pointCloudInstance.camera;l&&((a=n.mainViewInstance)==null||a.applyCameraTarget(l))};React.useEffect(()=>{if(m.current&&(t==null?void 0:t.url)){let e=n.mainViewInstance;!e&&f.width&&(e=new lbAnnotation.PointCloud({container:m.current,isOrthographicCamera:!0,orthographicParams:lbUtils.PointCloudUtils.getDefaultOrthographicParams(f),config:o}),n.setMainViewInstance(e))}},[f,t]),React.useEffect(()=>{var e;if(m.current&&(t==null?void 0:t.url)&&t.result&&n.mainViewInstance){let a=n.mainViewInstance;const l=lbUtils.PointCloudUtils.getBoxParamsFromResultList(t.result);l.forEach(s=>{var w;const b=(w=lbUtils.toolStyleConverter.getColorFromConfig({attribute:s.attribute},__spreadProps(__spreadValues({},o),{attributeConfigurable:!0}),{}))==null?void 0:w.hex;a==null||a.addBoxToSense(s,b)}),a.render(),n.setPointCloudResult(l);const r=lbUtils.PointCloudUtils.getRectParamsFromResultList(t.result);n.setRectList(r),n.setPointCloudValid((e=index.jsonParser(t.result))==null?void 0:e.valid)}},[t,n.mainViewInstance]),React.useEffect(()=>{var e,a,l,r;if(c){V(lbUtils.EPerspectiveView.Top);const s=(l=(a=(e=n.topViewInstance)==null?void 0:e.pointCloudInstance)==null?void 0:a.camera.zoom)!=null?l:1;(r=n.mainViewInstance)==null||r.updateCameraZoom(s)}},[c]),React.useEffect(()=>{var e,a,l,r;if(v){V(lbUtils.EPerspectiveView.Top);const s=(l=(a=(e=n.topViewInstance)==null?void 0:e.pointCloudInstance)==null?void 0:a.camera.zoom)!=null?l:1;(r=n.mainViewInstance)==null||r.updateCameraZoom(s)}},[v]),React.useEffect(()=>(window.addEventListener("keydown",P),()=>{window.removeEventListener("keydown",P)}),[]);const P=e=>{if(e.keyCode===EKeyCode.Esc){C(!1);return}},x=React.useMemo(()=>({reset3DView:_,setTarget3DView:V,isActive:!!c,followTopView:h}),[c,n.mainViewInstance]);React.useEffect(()=>{var e,a,l;const r=n.pointCloudBoxList.filter(s=>s.attribute===i);(r==null?void 0:r.length)>0&&((e=n.mainViewInstance)==null||e.clearHighlightBoxes(),(a=n.mainViewInstance)==null||a.highlightBoxes(r)),r.length===0&&((l=n.mainViewInstance)==null||l.clearHighlightBoxesAndRender())},[i,n.mainViewInstance]);const I=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$1,{onChange:e=>{var a;(a=n.mainViewInstance)==null||a.updatePointSize({customSize:e})}}),React__default.default.createElement("span",{style:{marginRight:8}},g("ShowArrows")),React__default.default.createElement(antd.Switch,{size:"small",checked:u,onChange:e=>{var a;p(e),(a=n.mainViewInstance)==null||a.setShowDirection(e)}}),d&&React__default.default.createElement(PointCloud3DContext.Provider,{value:x},React__default.default.createElement(PointCloud3DSideBar,{isEnlarge:d})));return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-3d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:d}),title:d?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{C(!1)}}),g("3DView")):React__default.default.createElement(index$2,{title:g("3DView"),onClick:()=>{C(!0)}}),toolbar:I},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-content")},!d&&React__default.default.createElement(PointCloud3DContext.Provider,{value:x},React__default.default.createElement(PointCloud3DSideBar,null)),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-view"),id:pointCloudID,ref:m})))};var PointCloud3DView=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud3D);module.exports=PointCloud3DView;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbUtils=require("@labelbee/lb-utils"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),actionCreators=require("../../store/annotation/actionCreators.js"),index=require("../../store/annotatedBox/index.js");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,e,i)=>e in n?__defProp(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i,__spreadValues=(n,e)=>{for(var i in e||(e={}))__hasOwnProp.call(e,i)&&__defNormalProp(n,i,e[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(e))__propIsEnum.call(e,i)&&__defNormalProp(n,i,e[i]);return n},__spreadProps=(n,e)=>__defProps(n,__getOwnPropDescs(e)),__async=(n,e,i)=>new Promise((h,C)=>{var I=P=>{try{f(i.next(P))}catch(s){C(s)}},_=P=>{try{f(i.throw(P))}catch(s){C(s)}},f=P=>P.done?h(P.value):Promise.resolve(P.value).then(I,_);f((i=i.apply(n,e)).next())});const PointCloudContext=React__default.default.createContext({pointCloudBoxList:[],pointCloudSphereList:[],displayPointCloudList:[],displaySphereList:[],displayLineList:[],polygonList:[],lineList:[],selectedID:"",selectedIDs:[],highlightIDs:[],setHighlightIDs:()=>{},valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudSphereList:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},addHighlightID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],addPointCloudSphere:()=>[],setPolygonList:()=>{},setLineList:()=>{},zoom:1,setZoom:()=>{},history:new lbAnnotation.ActionsHistory,hideAttributes:[],setHideAttributes:()=>{},toggleAttributesVisible:()=>{},reRender:()=>{},setAttrPanelLayout:()=>{},attrPanelLayout:"",syncAllViewPointCloudColor:()=>Promise.resolve(),defaultAttribute:"",setDefaultAttribute:()=>{},pointCloudPattern:lbAnnotation.EToolName.Rect,setPointCloudPattern:()=>{},selectSpecAttr:()=>{},globalPattern:lbUtils.EPointCloudPattern.Detection,setGlobalPattern:()=>{},setPtSegmentInstance:()=>{},segmentation:[],setSegmentation:()=>{},clearAllDetectionInstance:()=>{},highlight2DDataList:[],setHighlight2DDataList:()=>{},cuboidBoxIn2DView:!0,setCuboidBoxIn2DView:n=>{},imageSizes:{},cacheImageNodeSize:()=>{}}),PointCloudProvider=({children:n})=>{const[e,i]=React.useState([]),[h,C]=React.useState([]),[I,_]=React.useState([]),[f,P]=React.useState([]),[s,A]=React.useState([]),[m,x]=React.useState([]),[R,$]=React.useState(!0),[j,tt]=React.useState(!0),[z,et]=React.useState(1),[a,N]=React.useState(),[q,M]=React.useState(),[G,T]=React.useState(),[l,F]=React.useState(),[Z,ot]=React.useState(""),[V,nt]=React.useState(lbAnnotation.EToolName.Rect),it=React.useRef(new lbAnnotation.ActionsHistory).current,[c,B]=React.useState([]),[k,st]=React.useState(""),[O,lt]=React.useState(lbUtils.EPointCloudPattern.Detection),[S,U]=React.useState(void 0),[H,rt]=React.useState([]),[E,at]=React.useState([]),p=index(),[J,ut]=React.useState({}),dt=ctx.useDispatch(),ct=r=>{const{imgNode:u,path:d}=r;d&&u&&ut(g=>__spreadProps(__spreadValues({},g),{[d]:{width:u.width,height:u.height}}))},K=React.useMemo(()=>s.length===1?s[0]:"",[s]),D=React.useMemo(()=>{const r=e.find(t=>t.id===K),u=t=>{const o=e.concat(t);return i(o),o},d=t=>{const o=h.concat(t);return C(o),o},g=t=>{$(t!==!1)},v=t=>{t===void 0&&A([]),typeof t=="string"&&A([t]),Array.isArray(t)&&A(Array.from(new Set(t)))},vt=t=>{s.includes(t)?v(s.filter(o=>o!==t)):v([...s,t])},Pt=t=>{m.includes(t)?x([]):x([t])},gt=()=>{if(V===lbAnnotation.EToolName.Rect){const t=e.map(o=>o.id);v(t),a==null||a.pointCloud2dOperation.setSelectedIDs(t)}},ft=t=>{v(e.filter(o=>o.attribute===t).map(o=>o.id))},Q=e.filter(t=>!c.includes(t.attribute)),W=h.filter(t=>!c.includes(t.attribute)),X=f.filter(t=>t.attribute&&!c.includes(t.attribute)),ht=t=>{if(c.includes(t))B(c.filter(o=>o!==t));else{const o=c.concat(t);B(o)}},St=(t=Q,o=I,y=W,w=X,L=H)=>{var b;l==null||l.clearAllBox(),l==null||l.clearAllSphere(),a==null||a.updatePolygonList(t,o),a==null||a.updatePointList(y),a==null||a.updateLineList(w),l==null||l.generateBoxes(t),l==null||l.generateSpheres(y),(b=S==null?void 0:S.store)==null||b.updateCurrentSegment(L),Y(t)},bt=()=>{N(void 0),M(void 0),T(void 0),F(void 0)},Y=(t,o)=>__async(void 0,null,function*(){var y;if(!l)return;const w=l.pointCloudObject;if(!!w)try{const L=yield l.getHighlightIndexByMappingImgList({mappingImgList:o!=null?o:E,points:w.geometry.attributes.position.array}),b=yield l==null?void 0:l.highlightOriginPointCloud(t,L);return b&&((y=a==null?void 0:a.pointCloudInstance)==null||y.updateColor(b)),b}catch(L){console.error(L)}});return{selectedID:K,pointCloudBoxList:e,pointCloudSphereList:h,displayPointCloudList:Q,displaySphereList:W,displayLineList:X,selectedIDs:s,setPointCloudResult:i,setSelectedIDs:v,addPointCloudBox:u,addPointCloudSphere:d,setPointCloudSphereList:C,valid:R,selectedPointCloudBox:r,setPointCloudValid:g,addSelectedID:vt,addHighlightID:Pt,selectedAllBoxes:gt,topViewInstance:a,setTopViewInstance:N,sideViewInstance:q,setSideViewInstance:M,backViewInstance:G,setBackViewInstance:T,mainViewInstance:l,setMainViewInstance:F,polygonList:I,setPolygonList:_,lineList:f,setLineList:P,zoom:z,setZoom:et,history:it,toggleAttributesVisible:ht,hideAttributes:c,setHideAttributes:B,reRender:St,attrPanelLayout:k,setAttrPanelLayout:st,syncAllViewPointCloudColor:Y,defaultAttribute:Z,setDefaultAttribute:ot,pointCloudPattern:V,setPointCloudPattern:nt,selectSpecAttr:ft,globalPattern:O,setGlobalPattern:t=>{O!==t&&(dt(actionCreators.ChangeSave),lt(t),t===lbUtils.EPointCloudPattern.Detection&&U(void 0))},ptSegmentInstance:S,setPtSegmentInstance:U,segmentation:H,setSegmentation:rt,clearAllDetectionInstance:bt,highlight2DDataList:E,setHighlight2DDataList:at,cuboidBoxIn2DView:j,setCuboidBoxIn2DView:tt,imageSizes:J,cacheImageNodeSize:ct,highlightIDs:m,setHighlightIDs:x}},[R,s,e,h,I,f,a,q,G,l,z,c,k,Z,V,O,S,H,E,j,J,m]);React.useEffect(()=>{var r,u,d;(r=p==null?void 0:p.setPointCloudBoxList)==null||r.call(p,e),(u=p==null?void 0:p.setHighlightIDs)==null||u.call(p,m),(d=p==null?void 0:p.setSelectedIDs)==null||d.call(p,s)},[e,s,m]),React.useEffect(()=>{var r;(r=p==null?void 0:p.setPtCtx)==null||r.call(p,D)},[D]);const pt=()=>{const r=e.filter(v=>c.includes(v.attribute)),{setSelectedIDs:u,reRender:d}=D,g=r.map(v=>v.id);g.length>0&&u(s.filter(v=>!g.includes(v))),d()};return React.useEffect(()=>{var r,u,d,g;pt(),(u=(r=a==null?void 0:a.toolInstance)==null?void 0:r.setHiddenAttributes)==null||u.call(r,c),(g=(d=S==null?void 0:S.store)==null?void 0:d.setHiddenAttributes)==null||g.call(d,c)},[c]),React__default.default.createElement(PointCloudContext.Provider,{value:D},n)};exports.PointCloudContext=PointCloudContext,exports.PointCloudProvider=PointCloudProvider;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbUtils=require("@labelbee/lb-utils"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),actionCreators=require("../../store/annotation/actionCreators.js"),index=require("../../store/annotatedBox/index.js"),_=require("lodash"),map=require("./utils/map.js");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(a,n,l)=>n in a?__defProp(a,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):a[n]=l,__spreadValues=(a,n)=>{for(var l in n||(n={}))__hasOwnProp.call(n,l)&&__defNormalProp(a,l,n[l]);if(__getOwnPropSymbols)for(var l of __getOwnPropSymbols(n))__propIsEnum.call(n,l)&&__defNormalProp(a,l,n[l]);return a},__spreadProps=(a,n)=>__defProps(a,__getOwnPropDescs(n)),__async=(a,n,l)=>new Promise((w,D)=>{var R=p=>{try{P(l.next(p))}catch(y){D(y)}},O=p=>{try{P(l.throw(p))}catch(y){D(y)}},P=p=>p.done?w(p.value):Promise.resolve(p.value).then(R,O);P((l=l.apply(a,n)).next())});const pickRectObject=a=>___default.default.pick(a,["id","attribute","width","height","x","y","imageName"]),PointCloudContext=React__default.default.createContext({rectList:[],pointCloudBoxList:[],pointCloudSphereList:[],displayPointCloudList:[],displaySphereList:[],displayLineList:[],polygonList:[],lineList:[],selectedID:"",selectedIDs:[],highlightIDs:[],setHighlightIDs:()=>{},valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudSphereList:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},addHighlightID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],addPointCloudSphere:()=>[],setPolygonList:()=>{},setRectList:()=>{},addRectIn2DView:()=>{},removeRectIn2DView:()=>{},updateRectIn2DView:()=>{},setLineList:()=>{},zoom:1,setZoom:()=>{},history:new lbAnnotation.ActionsHistory,hideAttributes:[],setHideAttributes:()=>{},toggleAttributesVisible:()=>{},reRender:()=>{},setAttrPanelLayout:()=>{},attrPanelLayout:"",syncAllViewPointCloudColor:()=>Promise.resolve(),defaultAttribute:"",setDefaultAttribute:()=>{},pointCloudPattern:lbAnnotation.EToolName.Rect,setPointCloudPattern:()=>{},selectSpecAttr:()=>{},globalPattern:lbUtils.EPointCloudPattern.Detection,setGlobalPattern:()=>{},setPtSegmentInstance:()=>{},segmentation:[],setSegmentation:()=>{},clearAllDetectionInstance:()=>{},highlight2DDataList:[],setHighlight2DDataList:()=>{},cuboidBoxIn2DView:!0,setCuboidBoxIn2DView:a=>{},imageSizes:{},cacheImageNodeSize:()=>{},addRectFromPointCloudBoxByImageName:a=>!1,removeRectBySpecifyId:(a,n,l)=>!1,removeRectByPointCloudBoxId:a=>!1,rectRotateSensitivity:2,setRectRotateSensitivity:()=>{},imageNamePointCloudBoxMap:new Map,linkageImageNameRectMap:new Map}),PointCloudProvider=({children:a})=>{const[n,l]=React.useState([]),[w,D]=React.useState([]),[R,O]=React.useState([]),[P,p]=React.useState([]),[y,fe]=React.useState([]),[h,H]=React.useState([]),[A,E]=React.useState([]),[T,ge]=React.useState(!0),[W,me]=React.useState(2),[Z,ve]=React.useState(!0),[U,he]=React.useState(1),[f,J]=React.useState(),[K,Q]=React.useState(),[X,Y]=React.useState(),[d,$]=React.useState(),[ee,Pe]=React.useState(""),[j,Ie]=React.useState(lbAnnotation.EToolName.Rect),Se=React.useRef(new lbAnnotation.ActionsHistory).current,[g,k]=React.useState([]),[te,ye]=React.useState(""),[F,Ce]=React.useState(lbUtils.EPointCloudPattern.Detection),[x,ne]=React.useState(void 0),[q,be]=React.useState([]),[z,we]=React.useState([]),m=index(),[ie,xe]=React.useState({}),Le=ctx.useDispatch(),De=i=>{const{imgNode:o,path:t}=i;t&&o&&xe(c=>__spreadProps(__spreadValues({},c),{[t]:{width:o.width,height:o.height}}))},oe=React.useMemo(()=>h.length===1?h[0]:"",[h]),B=React.useCallback((i,o,t="extId")=>{const c=t||"id",r=new Set(o);return p(u=>{let C=!1;const b=u.filter(N=>{const G=N[c],M=r.has(G)?N.imageName!==i:!0;return M||(C=!0),M});return C?b:u}),!0},[]),se=React.useCallback(i=>{const o=n.map(t=>t.id);return B(i,o,"extId")},[n,B]),ae=React.useCallback(i=>{if(!i)return!1;const o=n.filter(t=>Array.isArray(t.rects)).map(t=>{const{id:c,attribute:r,trackID:u}=t,C=t.rects.find(b=>b.imageName===i);if(C){const b=___default.default.pick(C,["width","height","x","y","imageName"]);return __spreadProps(__spreadValues({},b),{id:lbAnnotation.uuid(),attribute:r,order:u,extId:c,lineDash:[]})}return null}).filter(t=>t!==null);return o.length?(p(t=>{const c=new Set(t.filter(u=>i===u.imageName).map(u=>u.extId)),r=o.filter(u=>c.has(u.extId)===!1);return r.length?[...t,...r]:t}),!0):!1},[n]),re=React.useMemo(()=>n.filter(o=>Array.isArray(o.rects)&&o.rects.length>0).reduce((o,t)=>{var c;return(c=t.rects)==null||c.forEach(r=>{const{imageName:u}=r;if(!u){console.warn("Missing image name"),console.trace(r,t);return}map.addMapIndirectWeakSetItem(o,u,t.id,t)}),o},new Map),[n]),le=React.useMemo(()=>P.filter(i=>i.extId!==void 0&&i.id!==void 0).reduce((i,o)=>{const t=o.imageName;return t?(map.addMapIndirectWeakSetItem(i,t,o.extId,o),i):(console.warn("missing image name"),console.log(o,P),i)},new Map),[P]),V=React.useMemo(()=>{const i=n.find(e=>e.id===oe),o=e=>{const s=n.concat(e);return l(s),s},t=e=>{const s=w.concat(e);return D(s),s},c=e=>{ge(e!==!1)},r=e=>{e===void 0&&H([]),typeof e=="string"&&H([e]),Array.isArray(e)&&H(Array.from(new Set(e)))},u=e=>{h.includes(e)?r(h.filter(s=>s!==e)):r([...h,e])},C=e=>{const s=pickRectObject(e);p(v=>[...v,s])},b=(e,s=!1)=>{const v=pickRectObject(e);p(S=>S.map(I=>I.id===e.id?s?__spreadValues(__spreadValues({},I),v):v:I))},N=e=>{p(s=>s.filter(v=>!e.find(S=>S.id===v.id)))},G=e=>{A.includes(e)?E([]):E([e])},M=()=>{if(j===lbAnnotation.EToolName.Rect){const e=n.map(s=>s.id);r(e),f==null||f.pointCloud2dOperation.setSelectedIDs(e)}},_e=e=>{r(n.filter(s=>s.attribute===e).map(s=>s.id))},ce=n.filter(e=>!g.includes(e.attribute)),de=w.filter(e=>!g.includes(e.attribute)),ue=y.filter(e=>e.attribute&&!g.includes(e.attribute)),Ae=e=>{if(g.includes(e))k(g.filter(s=>s!==e));else{const s=g.concat(e);k(s)}},Be=(e=ce,s=R,v=de,S=ue,I=q)=>{var L;d==null||d.clearAllBox(),d==null||d.clearAllSphere(),f==null||f.updatePolygonList(e,s),f==null||f.updatePointList(v),f==null||f.updateLineList(S),d==null||d.generateBoxes(e),d==null||d.generateSpheres(v),(L=x==null?void 0:x.store)==null||L.updateCurrentSegment(I),pe(e)},Ve=()=>{J(void 0),Q(void 0),Y(void 0),$(void 0)},pe=(e,s)=>__async(void 0,null,function*(){var v;if(!d)return;const S=d.pointCloudObject;if(!!S)try{const I=yield d.getHighlightIndexByMappingImgList({mappingImgList:s!=null?s:z,points:S.geometry.attributes.position.array}),L=yield d==null?void 0:d.highlightOriginPointCloud(e,I);return L&&((v=f==null?void 0:f.pointCloudInstance)==null||v.updateColor(L)),L}catch(I){console.error(I)}});return{selectedID:oe,pointCloudBoxList:n,pointCloudSphereList:w,displayPointCloudList:ce,displaySphereList:de,displayLineList:ue,selectedIDs:h,setPointCloudResult:l,setSelectedIDs:r,addPointCloudBox:o,addPointCloudSphere:t,setPointCloudSphereList:D,valid:T,selectedPointCloudBox:i,setPointCloudValid:c,addSelectedID:u,addHighlightID:G,selectedAllBoxes:M,topViewInstance:f,setTopViewInstance:J,sideViewInstance:K,setSideViewInstance:Q,backViewInstance:X,setBackViewInstance:Y,mainViewInstance:d,setMainViewInstance:$,polygonList:R,setPolygonList:O,rectList:P,setRectList:p,addRectIn2DView:C,removeRectIn2DView:N,updateRectIn2DView:b,lineList:y,setLineList:fe,zoom:U,setZoom:he,history:Se,toggleAttributesVisible:Ae,hideAttributes:g,setHideAttributes:k,reRender:Be,attrPanelLayout:te,setAttrPanelLayout:ye,syncAllViewPointCloudColor:pe,defaultAttribute:ee,setDefaultAttribute:Pe,pointCloudPattern:j,setPointCloudPattern:Ie,selectSpecAttr:_e,globalPattern:F,setGlobalPattern:e=>{F!==e&&(Le(actionCreators.ChangeSave),Ce(e),e===lbUtils.EPointCloudPattern.Detection&&ne(void 0))},ptSegmentInstance:x,setPtSegmentInstance:ne,segmentation:q,setSegmentation:be,clearAllDetectionInstance:Ve,highlight2DDataList:z,setHighlight2DDataList:we,cuboidBoxIn2DView:Z,setCuboidBoxIn2DView:ve,imageSizes:ie,cacheImageNodeSize:De,highlightIDs:A,setHighlightIDs:E,removeRectByPointCloudBoxId:se,removeRectBySpecifyId:B,addRectFromPointCloudBoxByImageName:ae,rectRotateSensitivity:W,setRectRotateSensitivity:me,imageNamePointCloudBoxMap:re,linkageImageNameRectMap:le}},[T,h,n,w,R,y,P,f,K,X,d,U,g,te,ee,j,F,x,q,z,Z,ie,A,se,B,ae,W,re,le]);React.useEffect(()=>{var i,o,t;(i=m==null?void 0:m.setPointCloudBoxList)==null||i.call(m,n),(o=m==null?void 0:m.setHighlightIDs)==null||o.call(m,A),(t=m==null?void 0:m.setSelectedIDs)==null||t.call(m,h)},[n,h,A]),React.useEffect(()=>{var i;(i=m==null?void 0:m.setPtCtx)==null||i.call(m,V)},[V]);const Re=()=>{const i=n.filter(r=>g.includes(r.attribute)),{setSelectedIDs:o,reRender:t}=V,c=i.map(r=>r.id);c.length>0&&o(h.filter(r=>!c.includes(r))),t()};return React.useEffect(()=>{var i,o,t,c;Re(),(o=(i=f==null?void 0:f.toolInstance)==null?void 0:i.setHiddenAttributes)==null||o.call(i,g),(c=(t=x==null?void 0:x.store)==null?void 0:t.setHiddenAttributes)==null||c.call(t,g)},[g]),React__default.default.createElement(PointCloudContext.Provider,{value:V},a)};exports.PointCloudContext=PointCloudContext,exports.PointCloudProvider=PointCloudProvider;
@@ -1 +1 @@
1
- "use strict";var PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),useSphere=require("./hooks/useSphere.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),useStatus=require("./hooks/useStatus.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),ctx=require("../../store/ctx.js"),useHistory=require("./hooks/useHistory.js"),useAttribute=require("./hooks/useAttribute.js"),useConfig=require("./hooks/useConfig.js"),usePolygon=require("./hooks/usePolygon.js"),useLine=require("./hooks/useLine.js"),reactI18next=require("react-i18next"),actionCreators=require("../../store/annotation/actionCreators.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,r,u)=>r in l?__defProp(l,r,{enumerable:!0,configurable:!0,writable:!0,value:u}):l[r]=u,__spreadValues=(l,r)=>{for(var u in r||(r={}))__hasOwnProp.call(r,u)&&__defNormalProp(l,u,r[u]);if(__getOwnPropSymbols)for(var u of __getOwnPropSymbols(r))__propIsEnum.call(r,u)&&__defNormalProp(l,u,r[u]);return l},__spreadProps=(l,r)=>__defProps(l,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:l,config:r,checkMode:u,configString:B,imgIndex:f,toolInstanceRef:a})=>{const t=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:L,selectNextBox:E,selectPrevBox:O,updateSelectedBox:g,deleteSelectedPointCloudBoxAndPolygon:q}=useSingleBox.useSingleBox(),{selectedSphere:P,updatePointCloudSphere:A}=useSphere.useSphere(),{clearAllResult:y,updatePointCloudPattern:j}=useStatus.useStatus(),{copySelectedBoxes:I,pasteSelectedBoxes:T,copiedBoxes:D}=useBoxes.useBoxes({config:r}),{updateRotate:w}=useRotate.useRotate({currentData:l}),{updatePointCloudData:v,topViewSelectedChanged:m}=usePointCloudViews.usePointCloudViews(),{redo:h,undo:x,pushHistoryWithList:N,pushHistoryUnderUpdatePolygon:H,pushHistoryUnderUpdateLine:K}=useHistory.useHistory(),U=ctx.useDispatch(),{syncThreeViewsAttribute:S}=useAttribute.useAttribute(),{syncAllViewsConfig:z,reRenderTopViewRange:R}=useConfig.useConfig(),{selectedPolygon:k}=usePolygon.usePolygon(),{selectedLine:_}=useLine.useLine(),{t:C}=reactI18next.useTranslation(),b=e=>{var o;const{topViewInstance:s}=t;!s||(o=s.pointCloud2dOperation)==null||o.updateSelectedPolygonsPoints(e)},F=(e,o)=>{var s,i;const{topViewInstance:c,mainViewInstance:n}=t;if(!c)return;const{pointCloud2dOperation:d}=c;switch(e){case"q":{w(2);break}case"e":w(-2);break;case"g":w(180);break;case"u":{const p=d.pattern===EPolygonPattern.Normal?lbAnnotation.EToolName.Rect:lbAnnotation.EToolName.Polygon;j(p);const M={[lbAnnotation.EToolName.Polygon]:C("PolygonPattern"),[lbAnnotation.EToolName.Rect]:C("RectPattern")};antd.message.success(C("ChangePatternMsg",{pattern:M[p]})),d.clearActiveStatus(),d.clearDrawingStatus()}break;case"+":n==null||n.updatePointSize({zoomIn:!0});break;case"-":n==null||n.updatePointSize({zoomIn:!1});break;case"v":t.setPointCloudValid(!t.valid);break;case"tab":if(o.shiftKey){O();break}E(),o.preventDefault();break;case"f":L();break;case"arrowup":b({y:-1});break;case"arrowdown":b({y:1});break;case"arrowleft":b({x:-1});break;case"arrowright":b({x:1});break;case"delete":q();break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const p=lbAnnotation.AttributeUtils.getAttributeByKeycode(o.keyCode,r.attributeList);p!==void 0&&((i=a.current)==null||i.setDefaultAttribute(p))}return}}},G=(e,o)=>{switch(e){case"c":I();break;case"v":T();break;case"a":o.preventDefault(),t.selectedAllBoxes();break;case"z":{o.shiftKey?h():x();break}}},V=e=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(e)||u===!0)return;const o=e.key.toLocaleLowerCase();if(e.ctrlKey){G(o,e);return}F(o,e)};return React.useEffect(()=>{const{topViewInstance:e}=t;if(!!e)return window.addEventListener("keydown",V),()=>{window.removeEventListener("keydown",V)}},[t,D,r,t.pointCloudBoxList,t.polygonList]),React.useEffect(()=>{z(r)},[B]),React.useEffect(()=>{(r==null?void 0:r.radius)&&R(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),React.useEffect(()=>{v==null||v()},[f,t.mainViewInstance]),React.useEffect(()=>{t.setHideAttributes([])},[f]),React.useEffect(()=>{a.current.setDefaultAttribute=e=>{var o,s,i,c;S(e);const n=t.selectedPointCloudBox;if(n){n.attribute=e;const d=U(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[n],stepConfig:r,action:"viewUpdateBox"}));n.valid=d[0].valid;const p=g(n);(i=(s=(o=t==null?void 0:t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null?void 0:s.setPolygonValidAndRender)==null||i.call(s,n.id,!0,n.valid),t.mainViewInstance&&m({newSelectedBox:n,newPointCloudList:p})}if(k&&H(__spreadProps(__spreadValues({},k),{attribute:e})),_&&K(__spreadProps(__spreadValues({},_),{attribute:e})),P){const d=A(__spreadProps(__spreadValues({},P),{attribute:e}));t.mainViewInstance&&((c=t.mainViewInstance)==null||c.generateSpheres(d),m({newSelectedSphere:P,newSphereList:d}))}},a.current.setSubAttribute=(e,o)=>{var s;const i=t.selectedPointCloudBox;if(i){const c=(s=i==null?void 0:i.subAttribute)!=null?s:{};i.subAttribute=__spreadProps(__spreadValues({},c),{[e]:o}),g(i)}},a.current.clearResult=()=>{y==null||y()},a.current.redo=()=>{h()},a.current.undo=()=>{x()},a.current.setValid=e=>{a.current.valid=e,setTimeout(()=>{t.setPointCloudValid(e),e===!1&&y()})},a.current.setForbidOperation=e=>{var o,s;(s=(o=t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null||s.setForbidOperation(e),e===!0&&t.setSelectedIDs(void 0)},a.current.setShowDefaultCursor=e=>{var o,s;(s=(o=t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null||s.setShowDefaultCursor(e)},a.current.asyncData=e=>{setTimeout(()=>{v==null||v(e)})}},[t.pointCloudBoxList,t.pointCloudSphereList,t.selectedID,t.valid,t.polygonList,t.lineList,t.mainViewInstance,t.ptSegmentInstance]),React.useEffect(()=>{a.current.updateSegmentTool=e=>{var o;(o=t.ptSegmentInstance)==null||o.emit(e)},a.current.segmentInstance=t.ptSegmentInstance},[t.ptSegmentInstance]),React.useEffect(()=>{a.current.history={pushHistory:e=>{N({pointCloudBoxList:e})},initRecord:()=>{}}},[]),React.useEffect(()=>{var e;const o=(e=t.topViewInstance)==null?void 0:e.toolInstance;if(!o||u)return;const s=n=>{S(n)},i=n=>{antd.message.error(n)},c=n=>{antd.message.info(n)};return o.on("syncAttribute",s),o.on("messageError",i),o.on("messageInfo",c),()=>{o.unbind("syncAttribute",s),o.unbind("messageError",i),o.unbind("messageInfo",c)}},[t.topViewInstance]),null};var PointCloudListener$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudListener);module.exports=PointCloudListener$1;
1
+ "use strict";var PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useRotateEdge=require("./hooks/useRotateEdge.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),useSphere=require("./hooks/useSphere.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),useStatus=require("./hooks/useStatus.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),ctx=require("../../store/ctx.js"),useHistory=require("./hooks/useHistory.js"),useAttribute=require("./hooks/useAttribute.js"),useConfig=require("./hooks/useConfig.js"),usePolygon=require("./hooks/usePolygon.js"),useLine=require("./hooks/useLine.js"),reactI18next=require("react-i18next"),actionCreators=require("../../store/annotation/actionCreators.js"),ahooks=require("ahooks"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,r,l)=>r in u?__defProp(u,r,{enumerable:!0,configurable:!0,writable:!0,value:l}):u[r]=l,__spreadValues=(u,r)=>{for(var l in r||(r={}))__hasOwnProp.call(r,l)&&__defNormalProp(u,l,r[l]);if(__getOwnPropSymbols)for(var l of __getOwnPropSymbols(r))__propIsEnum.call(r,l)&&__defNormalProp(u,l,r[l]);return u},__spreadProps=(u,r)=>__defProps(u,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:u,config:r,checkMode:l,configString:L,imgIndex:C,toolInstanceRef:a})=>{const t=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:V,selectNextBox:B,selectPrevBox:q,updateSelectedBox:f,deleteSelectedPointCloudBoxAndPolygon:O}=useSingleBox.useSingleBox(),{selectedSphere:P,updatePointCloudSphere:A}=useSphere.useSphere(),{clearAllResult:y,updatePointCloudPattern:j}=useStatus.useStatus(),{copySelectedBoxes:I,pasteSelectedBoxes:T,copiedBoxes:D}=useBoxes.useBoxes({config:r}),{updateRotate:g}=useRotate.useRotate({currentData:u}),{updateRotateEdge:N}=useRotateEdge.useRotateEdge({currentData:u}),{updatePointCloudData:v,topViewSelectedChanged:h}=usePointCloudViews.usePointCloudViews(),{redo:m,undo:S,pushHistoryWithList:R,pushHistoryUnderUpdatePolygon:H,pushHistoryUnderUpdateLine:K}=useHistory.useHistory(),U=ctx.useDispatch(),{syncThreeViewsAttribute:x}=useAttribute.useAttribute(),{syncAllViewsConfig:z,reRenderTopViewRange:F}=useConfig.useConfig(),{selectedPolygon:k}=usePolygon.usePolygon(),{selectedLine:_}=useLine.useLine(),{t:w}=reactI18next.useTranslation(),G=ahooks.useLatest(u),b=e=>{var o;const{topViewInstance:s}=t;!s||(o=s.pointCloud2dOperation)==null||o.updateSelectedPolygonsPoints(e)},M=(e,o)=>{var s,i;const{topViewInstance:c,mainViewInstance:n}=t;if(!c)return;const{pointCloud2dOperation:d}=c;switch(e){case"q":{g(t.rectRotateSensitivity);break}case"e":g(-Number(t.rectRotateSensitivity));break;case"g":N(-90);break;case"u":{const p=d.pattern===EPolygonPattern.Normal?lbAnnotation.EToolName.Rect:lbAnnotation.EToolName.Polygon;j(p);const Y={[lbAnnotation.EToolName.Polygon]:w("PolygonPattern"),[lbAnnotation.EToolName.Rect]:w("RectPattern")};antd.message.success(w("ChangePatternMsg",{pattern:Y[p]})),d.clearActiveStatus(),d.clearDrawingStatus()}break;case"+":n==null||n.updatePointSize({zoomIn:!0});break;case"-":n==null||n.updatePointSize({zoomIn:!1});break;case"v":t.setPointCloudValid(!t.valid);break;case"tab":if(o.shiftKey){q();break}B(),o.preventDefault();break;case"f":V();break;case"arrowup":b({y:-1});break;case"arrowdown":b({y:1});break;case"arrowleft":b({x:-1});break;case"arrowright":b({x:1});break;case"delete":O(G.current);break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const p=lbAnnotation.AttributeUtils.getAttributeByKeycode(o.keyCode,r.attributeList);p!==void 0&&((i=a.current)==null||i.setDefaultAttribute(p))}return}}},W=(e,o)=>{switch(e){case"c":I();break;case"v":T();break;case"a":o.preventDefault(),t.selectedAllBoxes();break;case"z":{o.shiftKey?m():S();break}}},E=e=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(e)||l===!0)return;const o=e.key.toLocaleLowerCase();if(e.ctrlKey){W(o,e);return}M(o,e)};return React.useEffect(()=>{const{topViewInstance:e}=t;if(!!e)return window.addEventListener("keydown",E),()=>{window.removeEventListener("keydown",E)}},[t,D,r,t.pointCloudBoxList,t.polygonList]),React.useEffect(()=>{z(r)},[L]),React.useEffect(()=>{(r==null?void 0:r.radius)&&F(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),React.useEffect(()=>{v==null||v()},[C,t.mainViewInstance]),React.useEffect(()=>{t.setHideAttributes([])},[C]),React.useEffect(()=>{a.current.setDefaultAttribute=e=>{var o,s,i,c;x(e);const n=t.selectedPointCloudBox;if(n){n.attribute=e;const d=U(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[n],stepConfig:r,action:"viewUpdateBox"}));n.valid=d[0].valid;const p=f(n);(i=(s=(o=t==null?void 0:t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null?void 0:s.setPolygonValidAndRender)==null||i.call(s,n.id,!0,n.valid),t.mainViewInstance&&h({newSelectedBox:n,newPointCloudList:p})}if(k&&H(__spreadProps(__spreadValues({},k),{attribute:e})),_&&K(__spreadProps(__spreadValues({},_),{attribute:e})),P){const d=A(__spreadProps(__spreadValues({},P),{attribute:e}));t.mainViewInstance&&((c=t.mainViewInstance)==null||c.generateSpheres(d),h({newSelectedSphere:P,newSphereList:d}))}},a.current.setSubAttribute=(e,o)=>{var s;const i=t.selectedPointCloudBox;if(i){const c=(s=i==null?void 0:i.subAttribute)!=null?s:{};i.subAttribute=__spreadProps(__spreadValues({},c),{[e]:o}),f(i)}},a.current.clearResult=()=>{y==null||y()},a.current.redo=()=>{m()},a.current.undo=()=>{S()},a.current.setValid=e=>{a.current.valid=e,setTimeout(()=>{t.setPointCloudValid(e),e===!1&&y()})},a.current.setForbidOperation=e=>{var o,s;(s=(o=t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null||s.setForbidOperation(e),e===!0&&t.setSelectedIDs(void 0)},a.current.setShowDefaultCursor=e=>{var o,s;(s=(o=t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null||s.setShowDefaultCursor(e)},a.current.asyncData=e=>{setTimeout(()=>{v==null||v(e)})}},[t.pointCloudBoxList,t.pointCloudSphereList,t.selectedID,t.valid,t.polygonList,t.lineList,t.mainViewInstance,t.ptSegmentInstance]),React.useEffect(()=>{a.current.updateSegmentTool=e=>{var o;(o=t.ptSegmentInstance)==null||o.emit(e)},a.current.segmentInstance=t.ptSegmentInstance},[t.ptSegmentInstance]),React.useEffect(()=>{a.current.history={pushHistory:e=>{R({pointCloudBoxList:e})},initRecord:()=>{}}},[]),React.useEffect(()=>{var e;const o=(e=t.topViewInstance)==null?void 0:e.toolInstance;if(!o||l)return;const s=n=>{x(n)},i=n=>{antd.message.error(n)},c=n=>{antd.message.info(n)};return o.on("syncAttribute",s),o.on("messageError",i),o.on("messageInfo",c),()=>{o.unbind("syncAttribute",s),o.unbind("messageError",i),o.unbind("messageInfo",c)}},[t.topViewInstance]),null};var PointCloudListener$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudListener);module.exports=PointCloudListener$1;
@@ -1 +1 @@
1
- "use strict";var map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),React=require("react"),index$1=require("../AnnotationView/index.js"),reactRedux=require("react-redux"),PointCloudContext=require("./PointCloudContext.js"),index=require("./components/TitleButton/index.js"),antd=require("antd"),highlightSegmentWorker=require("../../_virtual/highlightSegmentWorker.js"),lbAnnotation=require("@labelbee/lb-annotation"),_=require("lodash");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,n,r)=>n in t?__defProp(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r,__spreadValues=(t,n)=>{for(var r in n||(n={}))__hasOwnProp.call(n,r)&&__defNormalProp(t,r,n[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(n))__propIsEnum.call(n,r)&&__defNormalProp(t,r,n[r]);return t},__spreadProps=(t,n)=>__defProps(t,__getOwnPropDescs(n));const PointCloudSegment2DSingleView=({path:t,url:n,calib:r,pcdUrl:s,highlightAttribute:l})=>{const{ptSegmentInstance:e,cacheImageNodeSize:S,imageSizes:y}=React.useContext(PointCloudContext.PointCloudContext),x=React.useRef(null),f=React.useRef(0),p=React.useRef({}),c=React.useRef(),[g,v]=React.useState([]),[w,h]=React.useState(!1),P=React.useRef(void 0);React.useEffect(()=>()=>{f.current=0,p.current={},c.current=void 0},[s]);const m=React.useCallback(()=>{var o,a,i;if(f.current=f.current+1,f.current===2){const u=(o=e==null?void 0:e.store)==null?void 0:o.originPoints;if(!u||!c.current){console.error("cacheMappingPCD2Img Error",{path:t,points:u,filterSize:c.current});return}p.current=(i=(a=lbAnnotation.pointMappingLidar2image(u,r,c.current))==null?void 0:a.pcdMapping)!=null?i:{}}},[e]),C=React.useMemo(()=>{const o=(a,i)=>{var u,b;if(a&&c.current){P.current&&((b=(u=P.current)==null?void 0:u.terminate)==null||b.call(u));const E=p.current,d=new highlightSegmentWorker;d.current=d,h(!0),d.postMessage({cacheMap:E,indexes:a,defaultRGBA:i}),d.onmessage=O=>{v(O.data.annotations),d.terminate(),h(!1),d.current=void 0}}};return _.debounce(o,100)},[]);React.useEffect(()=>{if(!(e==null?void 0:e.store))return;const o=e.store.getHighlightAttribute(l!=null?l:""),a=e==null?void 0:e.getColorFromConfig(l!=null?l:"");C(o.flat(),a.stroke)},[l,e]),React.useEffect(()=>{if(e){const o=({newAttribute:a})=>{const i=e==null?void 0:e.getColorFromConfig(a);i&&v(g.map(u=>__spreadProps(__spreadValues({},u),{defaultRGBA:i.stroke})))};return e.on("updateDefaultAttribute",o),()=>{e.unbind("updateDefaultAttribute",o)}}},[e,g]),React.useEffect(()=>{if(e){const o=a=>{if(a.cacheSegData){const{cacheSegData:i}=a;if(i==null?void 0:i.indexes){const u=e.getColorFromConfig(i.attribute);C(i==null?void 0:i.indexes,u.stroke)}}else v([])};return e.on("syncPointCloudStatus",o),e.on("loadPCDFileEnd",m),()=>{e.unbind("syncPointCloudStatus",o),e.unbind("loadPCDFileEnd",m)}}},[e,s,y]);const D=o=>{S({path:t,imgNode:o}),c.current={width:o.width,height:o.height},m()};return React__default.default.createElement("div",{key:t,style:{position:"relative"},ref:x},React__default.default.createElement(index,{title:r.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF",position:"absolute",top:10,left:10,zIndex:1}}),React__default.default.createElement(antd.Spin,{spinning:w,delay:1e3},React__default.default.createElement(index$1,{size:{width:300,height:200},key:t,src:n,annotations:g,afterImgOnLoad:D})))},PointCloudSegment2DView=({currentData:t,highlightAttribute:n})=>{var r;const s=(r=t.mappingImgList)!=null?r:[];return(s==null?void 0:s.length)>0?React__default.default.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},s==null?void 0:s.map((l,e)=>l.calib&&React__default.default.createElement(PointCloudSegment2DSingleView,{key:l.path+e,path:l.path,url:l.url,calib:l.calib,pcdUrl:t.url,highlightAttribute:n}))):null};var PointCloudSegment2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudSegment2DView);module.exports=PointCloudSegment2DView$1;
1
+ "use strict";var map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),React=require("react"),index$1=require("../AnnotationView/index.js"),reactRedux=require("react-redux"),PointCloudContext=require("./PointCloudContext.js"),index=require("./components/TitleButton/index.js"),antd=require("antd"),highlightSegmentWorker=require("../../_virtual/highlightSegmentWorker.js"),lbAnnotation=require("@labelbee/lb-annotation"),_=require("lodash");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,r,o)=>r in t?__defProp(t,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[r]=o,__spreadValues=(t,r)=>{for(var o in r||(r={}))__hasOwnProp.call(r,o)&&__defNormalProp(t,o,r[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(r))__propIsEnum.call(r,o)&&__defNormalProp(t,o,r[o]);return t},__spreadProps=(t,r)=>__defProps(t,__getOwnPropDescs(r));const PointCloudSegment2DSingleView=({path:t,url:r,fallbackUrl:o,calib:s,pcdUrl:u,highlightAttribute:c})=>{const{ptSegmentInstance:e,cacheImageNodeSize:y,imageSizes:x}=React.useContext(PointCloudContext.PointCloudContext),w=React.useRef(null),p=React.useRef(0),g=React.useRef({}),d=React.useRef(),[v,m]=React.useState([]),[D,P]=React.useState(!1),b=React.useRef(void 0);React.useEffect(()=>()=>{p.current=0,g.current={},d.current=void 0},[u]);const h=React.useCallback(()=>{var n,l,i;if(p.current=p.current+1,p.current===2){const a=(n=e==null?void 0:e.store)==null?void 0:n.originPoints;if(!a||!d.current){console.error("cacheMappingPCD2Img Error",{path:t,points:a,filterSize:d.current});return}g.current=(i=(l=lbAnnotation.pointMappingLidar2image(a,s,d.current))==null?void 0:l.pcdMapping)!=null?i:{}}},[e]),C=React.useMemo(()=>{const n=(l,i)=>{var a,S;if(l&&d.current){b.current&&((S=(a=b.current)==null?void 0:a.terminate)==null||S.call(a));const k=g.current,f=new highlightSegmentWorker;f.current=f,P(!0),f.postMessage({cacheMap:k,indexes:l,defaultRGBA:i}),f.onmessage=O=>{m(O.data.annotations),f.terminate(),P(!1),f.current=void 0}}};return _.debounce(n,100)},[]);React.useEffect(()=>{if(!(e==null?void 0:e.store))return;const n=e.store.getHighlightAttribute(c!=null?c:""),l=e==null?void 0:e.getColorFromConfig(c!=null?c:"");C(n.flat(),l.stroke)},[c,e]),React.useEffect(()=>{if(e){const n=({newAttribute:l})=>{const i=e==null?void 0:e.getColorFromConfig(l);i&&m(v.map(a=>__spreadProps(__spreadValues({},a),{defaultRGBA:i.stroke})))};return e.on("updateDefaultAttribute",n),()=>{e.unbind("updateDefaultAttribute",n)}}},[e,v]),React.useEffect(()=>{if(e){const n=l=>{if(l.cacheSegData){const{cacheSegData:i}=l;if(i==null?void 0:i.indexes){const a=e.getColorFromConfig(i.attribute);C(i==null?void 0:i.indexes,a.stroke)}}else m([])};return e.on("syncPointCloudStatus",n),e.on("loadPCDFileEnd",h),()=>{e.unbind("syncPointCloudStatus",n),e.unbind("loadPCDFileEnd",h)}}},[e,u,x]);const E=n=>{y({path:t,imgNode:n}),d.current={width:n.width,height:n.height},h()};return React__default.default.createElement("div",{key:t,style:{position:"relative"},ref:w},React__default.default.createElement(index,{title:s.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF",position:"absolute",top:10,left:10,zIndex:1}}),React__default.default.createElement(antd.Spin,{spinning:D,delay:1e3},React__default.default.createElement(index$1,{size:{width:300,height:200},key:t,src:r,fallbackSrc:o,annotations:v,afterImgOnLoad:E})))},PointCloudSegment2DView=({currentData:t,highlightAttribute:r})=>{var o;const s=(o=t.mappingImgList)!=null?o:[];return(s==null?void 0:s.length)>0?React__default.default.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},s==null?void 0:s.map((u,c)=>{var e;return u.calib&&React__default.default.createElement(PointCloudSegment2DSingleView,{key:u.path+c,path:u.path,url:u.url,fallbackUrl:(e=u.fallbackUrl)!=null?e:"",calib:u.calib,pcdUrl:t.url,highlightAttribute:r})})):null};var PointCloudSegment2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudSegment2DView);module.exports=PointCloudSegment2DView$1;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),index$3=require("../../views/MainView/toolFooter/index.js"),index$4=require("../../views/MainView/toolFooter/ZoomController/index.js"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useSingleBox=require("./hooks/useSingleBox.js"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudInfos=require("./PointCloudInfos.js"),usePolygon=require("./hooks/usePolygon.js"),useSphere=require("./hooks/useSphere.js"),useZoom=require("./hooks/useZoom.js"),antd=require("antd"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),useSize=require("../../hooks/useSize.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),ToolUtils=require("../../utils/ToolUtils.js"),_=require("lodash"),index$2=require("./components/PointCloudSizeSlider/index.js"),useHistory=require("./hooks/useHistory.js"),index$1=require("./components/TitleButton/index.js");function _interopDefaultLegacy(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(o,l,s)=>l in o?__defProp(o,l,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[l]=s,__spreadValues=(o,l)=>{for(var s in l||(l={}))__hasOwnProp.call(l,s)&&__defNormalProp(o,s,l[s]);if(__getOwnPropSymbols)for(var s of __getOwnPropSymbols(l))__propIsEnum.call(l,s)&&__defNormalProp(o,s,l[s]);return o},__spreadProps=(o,l)=>__defProps(o,__getOwnPropDescs(l));const{EPolygonPattern,EToolName}=lbAnnotation.cTool,{ESortDirection}=lbAnnotation.cAnnotation,EKeyCode=lbAnnotation.cKeyCode.default,TransferCanvas2WorldOffset=(o,l,s=1)=>{const{width:C,height:c}=l,w={x:o.x+C*s/2,y:o.y+c*s/2},g={x:l.width/2,y:l.height/2};return{offsetX:(g.x-w.x)/s,offsetY:-(g.y-w.y)/s}},TopViewToolbar=({currentData:o})=>{var l,s;const{zoom:C,zoomIn:c,zoomOut:w,initialPosition:g}=useZoom.useZoom(),{selectNextBox:V,selectPrevBox:S}=useSingleBox.useSingleBox(),{switchToNextSphere:y}=useSphere.useSphere(),{updateRotate:P}=useRotate.useRotate({currentData:o}),x=React__default.default.useContext(PointCloudContext.PointCloudContext),{topViewInstance:E}=x,I=(s=(l=x==null?void 0:x.topViewInstance)==null?void 0:l.toolScheduler)==null?void 0:s.getCurrentToolName(),p=2,e=()=>{P(-p)},r=()=>{P(p)},f=()=>{P(180)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$2,{onChange:L=>{var h;(h=E==null?void 0:E.pointCloudInstance)==null||h.updatePointSize({customSize:L})}}),React__default.default.createElement("span",{onClick:r,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:e,className:dom.getClassName("point-cloud","rotate")}),React__default.default.createElement("span",{onClick:f,className:dom.getClassName("point-cloud","rotate-180")}),React__default.default.createElement(index$3.FooterDivider,null),React__default.default.createElement(icons.UpSquareOutlined,{onClick:()=>{if(I===EToolName.Point){y(ESortDirection.descend);return}S(!0)},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{if(I===EToolName.Point){y(ESortDirection.ascend);return}V(!0)},className:dom.getClassName("point-cloud","next")}),React__default.default.createElement(index$3.FooterDivider,null),React__default.default.createElement(index$4.ZoomController,{initialPosition:g,zoomIn:c,zoomOut:w,zoom:C}))},ZAxisSlider=({setZAxisLimit:o,zAxisLimit:l,checkMode:s})=>s?null:React__default.default.createElement("div",{style:{position:"absolute",top:128,right:8,height:"50%",zIndex:20}},React__default.default.createElement(antd.Slider,{vertical:!0,step:.5,max:10,min:.5,defaultValue:l,onAfterChange:C=>{o(C)}})),PointCloudTopView=({currentData:o,imgList:l,stepInfo:s,drawLayerSlot:C,checkMode:c,intelligentFit:w,setIsEnlargeTopView:g,isEnlargeTopView:V,onExitZoom:S,highlightAttribute:y})=>{var P,x;const[E,I]=React.useState({zoom:1,currentPos:{x:0,y:0}}),p=React.useRef(null),e=React__default.default.useContext(PointCloudContext.PointCloudContext),r=useSize(p),f=index.jsonParser(s.config),{setZoom:L,syncTopviewToolZoom:h}=useZoom.useZoom(),{hideAttributes:D}=e,{addPolygon:B,deletePolygon:R}=usePolygon.usePolygon(),{deletePointCloudSphere:U}=useSphere.useSphere(),{deletePointCloudBox:Z,changeValidByID:z}=useSingleBox.useSingleBox(),[b,H]=React.useState(10),{t:k}=reactI18next.useTranslation(),m=usePointCloudViews.usePointCloudViews(),{pushHistoryWithList:F}=useHistory.useHistory();React.useLayoutEffect(()=>{if(!e.topViewInstance&&p.current&&(o==null?void 0:o.url)&&(o==null?void 0:o.result)){const n={width:p.current.clientWidth,height:p.current.clientHeight},a=new lbAnnotation.PointCloudAnnotation({container:p.current,size:n,pcdPath:o.url,config:__spreadProps(__spreadValues({},f),{pointCloudPattern:e.pointCloudPattern}),checkMode:c,toolName:ToolUtils.getPointCloudToolList(),proxyMode:c});e.setTopViewInstance(a)}},[o]),React.useEffect(()=>{if(!r||!e.topViewInstance||!e.sideViewInstance)return;const{toolInstance:n}=e.topViewInstance;n.singleOn("dataUpdated",(t,i)=>{const d=___default.default.cloneDeep(t).map(u=>__spreadProps(__spreadValues({},u),{pointList:lbUtils.PointCloudUtils.pointListTransferCanvas2World(u.pointList,r)}));e.setSelectedIDs(i),e.setLineList(d),F({lineList:d})}),n.singleOn("pointCreated",(t,i)=>{m.topViewAddSphere({newPoint:t,size:r,trackConfigurable:f.trackConfigurable,zoom:i})}),n.singleOn("pointDeleted",t=>{U(t)}),n.singleOn("pointSelected",t=>{e.setSelectedIDs([t])}),n.singleOn("updatePointByDrag",(t,i)=>{var d;(d=m.topViewUpdatePoint)==null||d.call(m,t,r)}),n.singleOn("polygonCreated",(t,i)=>{if(n.pattern===EPolygonPattern.Normal||!(o==null?void 0:o.url)){const d=__spreadProps(__spreadValues({},t),{pointList:t.pointList.map(u=>lbUtils.PointCloudUtils.transferCanvas2World(u,r))});B(d),e.setSelectedIDs(D.includes(t.attribute)?"":t.id);return}m.topViewAddBox({polygon:t,size:r,imgList:l,trackConfigurable:f.trackConfigurable,zoom:i,intelligentFit:w})}),n.singleOn("deletedObject",({id:t})=>{Z(t),R(t)}),n.singleOn("deleteSelectedIDs",()=>{e.setSelectedIDs([])}),n.singleOn("addSelectedIDs",t=>{e.addSelectedID(t)}),n.singleOn("setSelectedIDs",t=>{e.setSelectedIDs(t)}),n.singleOn("updatePolygonByDrag",t=>{var i;(i=m.topViewUpdateBox)==null||i.call(m,t,r)});const a=t=>{var i;const d=z(t);d&&e.syncAllViewPointCloudColor(d),e.polygonList.find(u=>u.id===t)&&((i=e.topViewInstance)==null||i.toolInstance.setPolygonValidAndRender(t,!0))};return n.on("validUpdate",a),()=>{n.unbind("validUpdate",a)}},[e,r,o,m,e.polygonList,e.lineList,(P=e.topViewInstance)==null?void 0:P.toolInstance]),React.useEffect(()=>{var n,a;if(!(r==null?void 0:r.width)||!e.topViewInstance)return;const t=(a=(n=f==null?void 0:f.attributeList)==null?void 0:n[0])==null?void 0:a.value;t&&e.topViewInstance.toolInstance.setDefaultAttribute(t),e.topViewInstance.initSize(r),e.topViewInstance.updatePolygonList(e.displayPointCloudList,e.polygonList),e.topViewInstance.updatePointList(e.displaySphereList),e.topViewInstance.updateLineList(e.displayLineList);const{topViewInstance:{pointCloudInstance:i,toolInstance:d}}=e;d.singleOn("renderZoom",(u,v)=>{const{offsetX:O,offsetY:q}=TransferCanvas2WorldOffset(v,r,u);if(i.camera.zoom=u,v){const{x:j,y:T,z:N}=i.initCameraPosition;i.camera.position.set(j+q,T-O,N)}i.camera.updateProjectionMatrix(),i.render(),L(u),h(v,u,r),I({zoom:u,currentPos:v})}),d.singleOn("dragMove",({currentPos:u,zoom:v})=>{const{offsetX:O,offsetY:q}=TransferCanvas2WorldOffset(u,r,v);i.camera.zoom=v;const{x:j,y:T,z:N}=i.initCameraPosition;i.camera.position.set(j+q,T-O,N),i.render(),h(u,v,r),I({zoom:v,currentPos:u})})},[r,e.topViewInstance,(x=e.topViewInstance)==null?void 0:x.toolInstance]),React.useEffect(()=>{var n,a;(a=(n=e.topViewInstance)==null?void 0:n.pointCloudInstance)==null||a.applyZAxisPoints(b)},[b]),React.useEffect(()=>{var n,a,t,i;m.topViewSelectedChanged({}),(i=(t=(a=(n=e.topViewInstance)==null?void 0:n.toolInstance)==null?void 0:a.selection)==null?void 0:t.hardSetSelectedIDs)==null||i.call(t,e.selectedIDs)},[e.selectedIDs]),React.useEffect(()=>(window.addEventListener("keydown",A),()=>{window.removeEventListener("keydown",A)}),[]);const A=n=>{const{keyCode:a}=n;a===EKeyCode.Esc&&S()};return React.useEffect(()=>{var n,a,t;(t=(a=(n=e.topViewInstance)==null?void 0:n.pointCloud2dOperation)==null?void 0:a.setHighlightAttribute)==null||t.call(a,y)},[e.topViewInstance,y]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:V?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",position:"relative"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{S()}}),React__default.default.createElement("span",null,k("TopView")),React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:c,config:f,style:{display:"flex",position:"initial",margin:"0px 20px"}})):React__default.default.createElement(index$1,{title:k("TopView"),onClick:()=>{g(!0)}}),toolbar:React__default.default.createElement(TopViewToolbar,{currentData:o})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:p},C==null?void 0:C(E)),!V&&React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:c,config:f}),React__default.default.createElement(ZAxisSlider,{checkMode:c,zAxisLimit:b,setZAxisLimit:H}),React__default.default.createElement(PointCloudInfos.PointCloudValidity,null)))};var PointCloudTopView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudTopView);module.exports=PointCloudTopView$1;
1
+ "use strict";var dom=require("../../utils/dom.js"),index$3=require("../../views/MainView/toolFooter/index.js"),index$4=require("../../views/MainView/toolFooter/ZoomController/index.js"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useRotateEdge=require("./hooks/useRotateEdge.js"),useSingleBox=require("./hooks/useSingleBox.js"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudInfos=require("./PointCloudInfos.js"),usePolygon=require("./hooks/usePolygon.js"),useSphere=require("./hooks/useSphere.js"),useZoom=require("./hooks/useZoom.js"),antd=require("antd"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),useSize=require("../../hooks/useSize.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),ToolUtils=require("../../utils/ToolUtils.js"),_=require("lodash"),index$2=require("./components/PointCloudSizeSlider/index.js"),useHistory=require("./hooks/useHistory.js"),index$1=require("./components/TitleButton/index.js");function _interopDefaultLegacy(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(o,l,s)=>l in o?__defProp(o,l,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[l]=s,__spreadValues=(o,l)=>{for(var s in l||(l={}))__hasOwnProp.call(l,s)&&__defNormalProp(o,s,l[s]);if(__getOwnPropSymbols)for(var s of __getOwnPropSymbols(l))__propIsEnum.call(l,s)&&__defNormalProp(o,s,l[s]);return o},__spreadProps=(o,l)=>__defProps(o,__getOwnPropDescs(l));const{EPolygonPattern,EToolName}=lbAnnotation.cTool,{ESortDirection}=lbAnnotation.cAnnotation,EKeyCode=lbAnnotation.cKeyCode.default,TransferCanvas2WorldOffset=(o,l,s=1)=>{const{width:C,height:c}=l,w={x:o.x+C*s/2,y:o.y+c*s/2},P={x:l.width/2,y:l.height/2};return{offsetX:(P.x-w.x)/s,offsetY:-(P.y-w.y)/s}},TopViewToolbar=({currentData:o})=>{var l,s;const{zoom:C,zoomIn:c,zoomOut:w,initialPosition:P}=useZoom.useZoom(),{selectNextBox:S,selectPrevBox:V}=useSingleBox.useSingleBox(),{switchToNextSphere:x}=useSphere.useSphere(),{updateRotate:y}=useRotate.useRotate({currentData:o}),{updateRotateEdge:E}=useRotateEdge.useRotateEdge({currentData:o}),g=React__default.default.useContext(PointCloudContext.PointCloudContext),{topViewInstance:I}=g,p=(s=(l=g==null?void 0:g.topViewInstance)==null?void 0:l.toolScheduler)==null?void 0:s.getCurrentToolName(),e=()=>{y(-Number(g.rectRotateSensitivity))},r=()=>{y(g.rectRotateSensitivity)},f=()=>{E(-90)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$2,{onChange:b=>{var h;(h=I==null?void 0:I.pointCloudInstance)==null||h.updatePointSize({customSize:b})}}),React__default.default.createElement("span",{onClick:r,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:e,className:dom.getClassName("point-cloud","rotate")}),React__default.default.createElement("span",{onClick:f,className:dom.getClassName("point-cloud","rotate-90")}),React__default.default.createElement(index$3.FooterDivider,null),React__default.default.createElement(icons.UpSquareOutlined,{onClick:()=>{if(p===EToolName.Point){x(ESortDirection.descend);return}V(!0)},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{if(p===EToolName.Point){x(ESortDirection.ascend);return}S(!0)},className:dom.getClassName("point-cloud","next")}),React__default.default.createElement(index$3.FooterDivider,null),React__default.default.createElement(index$4.ZoomController,{initialPosition:P,zoomIn:c,zoomOut:w,zoom:C}))},ZAxisSlider=({setZAxisLimit:o,zAxisLimit:l,checkMode:s})=>s?null:React__default.default.createElement("div",{style:{position:"absolute",top:128,right:8,height:"50%",zIndex:20}},React__default.default.createElement(antd.Slider,{vertical:!0,step:.5,max:10,min:.5,defaultValue:l,onAfterChange:C=>{o(C)}})),PointCloudTopView=({currentData:o,imgList:l,stepInfo:s,drawLayerSlot:C,checkMode:c,intelligentFit:w,setIsEnlargeTopView:P,isEnlargeTopView:S,onExitZoom:V,highlightAttribute:x})=>{var y,E;const[g,I]=React.useState({zoom:1,currentPos:{x:0,y:0}}),p=React.useRef(null),e=React__default.default.useContext(PointCloudContext.PointCloudContext),r=useSize(p),f=index.jsonParser(s.config),{setZoom:b,syncTopviewToolZoom:h}=useZoom.useZoom(),{hideAttributes:A}=e,{addPolygon:B,deletePolygon:D}=usePolygon.usePolygon(),{deletePointCloudSphere:U}=useSphere.useSphere(),{deletePointCloudBox:Z,changeValidByID:z}=useSingleBox.useSingleBox(),[L,H]=React.useState(10),{t:k}=reactI18next.useTranslation(),m=usePointCloudViews.usePointCloudViews(),{pushHistoryWithList:F}=useHistory.useHistory();React.useLayoutEffect(()=>{if(!e.topViewInstance&&p.current&&(o==null?void 0:o.url)&&(o==null?void 0:o.result)){const n={width:p.current.clientWidth,height:p.current.clientHeight},a=new lbAnnotation.PointCloudAnnotation({container:p.current,size:n,pcdPath:o.url,config:__spreadProps(__spreadValues({},f),{pointCloudPattern:e.pointCloudPattern}),checkMode:c,toolName:ToolUtils.getPointCloudToolList(),proxyMode:c});e.setTopViewInstance(a)}},[o]),React.useEffect(()=>{if(!r||!e.topViewInstance||!e.sideViewInstance)return;const{toolInstance:n}=e.topViewInstance;n.singleOn("dataUpdated",(t,i)=>{const d=___default.default.cloneDeep(t).map(u=>__spreadProps(__spreadValues({},u),{pointList:lbUtils.PointCloudUtils.pointListTransferCanvas2World(u.pointList,r)}));e.setSelectedIDs(i),e.setLineList(d),F({lineList:d})}),n.singleOn("pointCreated",(t,i)=>{m.topViewAddSphere({newPoint:t,size:r,trackConfigurable:f.trackConfigurable,zoom:i})}),n.singleOn("pointDeleted",t=>{U(t)}),n.singleOn("pointSelected",t=>{e.setSelectedIDs([t])}),n.singleOn("updatePointByDrag",(t,i)=>{var d;(d=m.topViewUpdatePoint)==null||d.call(m,t,r)}),n.singleOn("polygonCreated",(t,i)=>{if(n.pattern===EPolygonPattern.Normal||!(o==null?void 0:o.url)){const d=__spreadProps(__spreadValues({},t),{pointList:t.pointList.map(u=>lbUtils.PointCloudUtils.transferCanvas2World(u,r))});B(d),e.setSelectedIDs(A.includes(t.attribute)?"":t.id);return}m.topViewAddBox({polygon:t,size:r,imgList:l,trackConfigurable:f.trackConfigurable,zoom:i,intelligentFit:w})}),n.singleOn("deletedObject",({id:t})=>{Z(t),D(t)}),n.singleOn("deleteSelectedIDs",()=>{e.setSelectedIDs([])}),n.singleOn("addSelectedIDs",t=>{e.addSelectedID(t)}),n.singleOn("setSelectedIDs",t=>{e.setSelectedIDs(t)}),n.singleOn("updatePolygonByDrag",t=>{var i;(i=m.topViewUpdateBox)==null||i.call(m,t,r)});const a=t=>{var i;const d=z(t);d&&e.syncAllViewPointCloudColor(d),e.polygonList.find(u=>u.id===t)&&((i=e.topViewInstance)==null||i.toolInstance.setPolygonValidAndRender(t,!0))};return n.on("validUpdate",a),()=>{n.unbind("validUpdate",a)}},[e,r,o,m,e.polygonList,e.lineList,(y=e.topViewInstance)==null?void 0:y.toolInstance]),React.useEffect(()=>{var n,a;if(!(r==null?void 0:r.width)||!e.topViewInstance)return;const t=(a=(n=f==null?void 0:f.attributeList)==null?void 0:n[0])==null?void 0:a.value;t&&e.topViewInstance.toolInstance.setDefaultAttribute(t),e.topViewInstance.initSize(r),e.topViewInstance.updatePolygonList(e.displayPointCloudList,e.polygonList),e.topViewInstance.updatePointList(e.displaySphereList),e.topViewInstance.updateLineList(e.displayLineList);const{topViewInstance:{pointCloudInstance:i,toolInstance:d}}=e;d.singleOn("renderZoom",(u,v)=>{const{offsetX:O,offsetY:q}=TransferCanvas2WorldOffset(v,r,u);if(i.camera.zoom=u,v){const{x:j,y:T,z:N}=i.initCameraPosition;i.camera.position.set(j+q,T-O,N)}i.camera.updateProjectionMatrix(),i.render(),b(u),h(v,u,r),I({zoom:u,currentPos:v})}),d.singleOn("dragMove",({currentPos:u,zoom:v})=>{const{offsetX:O,offsetY:q}=TransferCanvas2WorldOffset(u,r,v);i.camera.zoom=v;const{x:j,y:T,z:N}=i.initCameraPosition;i.camera.position.set(j+q,T-O,N),i.render(),h(u,v,r),I({zoom:v,currentPos:u})})},[r,e.topViewInstance,(E=e.topViewInstance)==null?void 0:E.toolInstance]),React.useEffect(()=>{var n,a;(a=(n=e.topViewInstance)==null?void 0:n.pointCloudInstance)==null||a.applyZAxisPoints(L)},[L]),React.useEffect(()=>{var n,a,t,i;m.topViewSelectedChanged({}),(i=(t=(a=(n=e.topViewInstance)==null?void 0:n.toolInstance)==null?void 0:a.selection)==null?void 0:t.hardSetSelectedIDs)==null||i.call(t,e.selectedIDs)},[e.selectedIDs]),React.useEffect(()=>(window.addEventListener("keydown",R),()=>{window.removeEventListener("keydown",R)}),[]);const R=n=>{const{keyCode:a}=n;a===EKeyCode.Esc&&V()};return React.useEffect(()=>{var n,a,t;(t=(a=(n=e.topViewInstance)==null?void 0:n.pointCloud2dOperation)==null?void 0:a.setHighlightAttribute)==null||t.call(a,x)},[e.topViewInstance,x]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:S?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",position:"relative"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{V()}}),React__default.default.createElement("span",null,k("TopView")),React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:c,config:f,style:{display:"flex",position:"initial",margin:"0px 20px"}})):React__default.default.createElement(index$1,{title:k("TopView"),onClick:()=>{P(!0)}}),toolbar:React__default.default.createElement(TopViewToolbar,{currentData:o})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:p},C==null?void 0:C(g)),!S&&React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:c,config:f}),React__default.default.createElement(ZAxisSlider,{checkMode:c,zAxisLimit:L,setZAxisLimit:H}),React__default.default.createElement(PointCloudInfos.PointCloudValidity,null)))};var PointCloudTopView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudTopView);module.exports=PointCloudTopView$1;
@@ -0,0 +1 @@
1
+ "use strict";var React=require("react"),ahooks=require("ahooks"),PointCloudContext=require("../PointCloudContext.js"),icon_link=require("../../../assets/annotation/icon_link.svg.js"),icon_unlink=require("../../../assets/annotation/icon_unlink.svg.js"),BatchSwitchConnectIn2DView=require("../../../views/MainView/toolFooter/BatchSwitchConnectIn2DView/BatchSwitchConnectIn2DView.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const iconSize={width:16,height:16},useDataLinkSwitch=e=>{e.imageName||console.warn("missing imageName");const[i,h]=React.useState(!0),l=ahooks.useLatest(e.imageName),{addRectFromPointCloudBoxByImageName:v,removeRectByPointCloudBoxId:w,imageNamePointCloudBoxMap:o,linkageImageNameRectMap:m}=React.useContext(PointCloudContext.PointCloudContext),r=React.useMemo(()=>e.imageName?o.has(e.imageName):(console.error("Missing image name"),!1),[e.imageName,o]),C=ahooks.useLatest(r),I=ahooks.useLatest(v),k=ahooks.useLatest(w),a=React.useCallback(n=>{if(!C.current)return;const t=l.current;if(!t){console.warn("invalid image name");return}h(n),n?k.current(t):I.current(t)},[]),x=React.useCallback(()=>{a(!i)},[a,i]),N=React.useMemo(()=>{var n;if(!e.is2DView||!r)return null;const s={zIndex:(n=e.zIndex)!=null?n:999,position:"absolute",top:16,right:16+28+12,background:"rgba(0, 0, 0, 0.74)",color:"white",borderRadius:2,padding:6,display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28};return React__default.default.createElement("div",{style:s},i&&React__default.default.createElement("img",{src:icon_link,style:iconSize}),!i&&React__default.default.createElement("img",{src:icon_unlink,style:iconSize}))},[i,e.is2DView,e.zIndex,x,r]),c=React.useCallback(()=>{var n,t,s,d;if(!e.is2DView)return;const u=l.current;if(!u){console.warn("invalid image name");return}const B=new Set([...(t=(n=o.get(u))==null?void 0:n.keys())!=null?t:[]]),g=[...(d=(s=m.get(u))==null?void 0:s.keys())!=null?d:[]];let f=!0;g.length&&(f=Boolean(g.find(b=>B.has(b)))===!1),a(f)},[e.is2DView,m,o,a]);return React.useEffect(()=>{c()},[c]),React.useEffect(()=>{const n=t=>{a(t)};return lbAnnotation.EventBus.on(BatchSwitchConnectIn2DView.EventBusEvent.switchConnect,n),()=>lbAnnotation.EventBus.unbind(BatchSwitchConnectIn2DView.EventBusEvent.switchConnect,n)},[a]),{rendered:N,isLinking:i,swapSwitch:a,syncIsLinking:c}};module.exports=useDataLinkSwitch;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),__async=(s,r,t)=>new Promise((u,a)=>{var e=i=>{try{n(t.next(i))}catch(l){a(l)}},d=i=>{try{n(t.throw(i))}catch(l){a(l)}},n=i=>i.done?u(i.value):Promise.resolve(i.value).then(e,d);n((t=t.apply(s,r)).next())});const useHighlight=({currentData:s})=>{var r;const{mainViewInstance:t,topViewInstance:u,pointCloudBoxList:a,highlight2DDataList:e,setHighlight2DDataList:d}=React.useContext(PointCloudContext.PointCloudContext),n=(r=s==null?void 0:s.mappingImgList)!=null?r:[],i=(o,h)=>__async(void 0,null,function*(){var p;let g=[...e];if(e.find(c=>c.url===o)?g=e.filter(c=>c.url!==o):g.push({url:o,calib:h}),d(g),!t||(n==null?void 0:n.length)===0)return;const v=t.pointCloudObject;if(!v)return;const f=yield t.getHighlightIndexByMappingImgList({mappingImgList:g,points:v.geometry.attributes.position.array}),C=yield t.highlightOriginPointCloud(a,f);C&&((p=u==null?void 0:u.pointCloudInstance)==null||p.updateColor(C))}),l=React.useCallback(o=>e.findIndex(h=>h.url===o)>=0,[e]);return{toggle2dVisible:i,isHighlightVisible:l}};exports.useHighlight=useHighlight;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),__async=(s,r,t)=>new Promise((u,a)=>{var e=i=>{try{n(t.next(i))}catch(l){a(l)}},d=i=>{try{n(t.throw(i))}catch(l){a(l)}},n=i=>i.done?u(i.value):Promise.resolve(i.value).then(e,d);n((t=t.apply(s,r)).next())});const useHighlight=({currentData:s})=>{var r;const{mainViewInstance:t,topViewInstance:u,pointCloudBoxList:a,highlight2DDataList:e,setHighlight2DDataList:d}=React.useContext(PointCloudContext.PointCloudContext),n=(r=s==null?void 0:s.mappingImgList)!=null?r:[],i=(o,h,f)=>__async(void 0,null,function*(){var p;let g=[...e];if(e.find(c=>c.url===o)?g=e.filter(c=>c.url!==o):g.push({url:o,fallbackUrl:h,calib:f}),d(g),!t||(n==null?void 0:n.length)===0)return;const v=t.pointCloudObject;if(!v)return;const m=yield t.getHighlightIndexByMappingImgList({mappingImgList:g,points:v.geometry.attributes.position.array}),C=yield t.highlightOriginPointCloud(a,m);C&&((p=u==null?void 0:u.pointCloudInstance)==null||p.updateColor(C))}),l=React.useCallback(o=>e.findIndex(h=>h.url===o)>=0,[e]);return{toggle2dVisible:i,isHighlightVisible:l}};exports.useHighlight=useHighlight;