@labelbee/lb-components 1.24.0-alpha.43 → 1.24.0-alpha.45

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.
@@ -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"),ToolPointCloudBoxRenderHelper=require("../../utils/ToolPointCloudBoxRenderHelper.js"),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(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}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=(n,s,r)=>s in n?__defProp(n,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[s]=r,__spreadValues=(n,s)=>{for(var r in s||(s={}))__hasOwnProp.call(s,r)&&__defNormalProp(n,r,s[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(s))__propIsEnum.call(s,r)&&__defNormalProp(n,r,s[r]);return n},__spreadProps=(n,s)=>__defProps(n,__getOwnPropDescs(s));const{EPolygonPattern,EToolName}=lbAnnotation.cTool,{ESortDirection}=lbAnnotation.cAnnotation,EKeyCode=lbAnnotation.cKeyCode.default,TransferCanvas2WorldOffset=(n,s,r=1)=>{const{width:v,height:c}=s,w={x:n.x+v*r/2,y:n.y+c*r/2},P={x:s.width/2,y:s.height/2};return{offsetX:(P.x-w.x)/r,offsetY:-(P.y-w.y)/r}},TopViewToolbar=({currentData:n})=>{var s,r;const{zoom:v,zoomIn:c,zoomOut:w,initialPosition:P}=useZoom.useZoom(),{selectNextBox:E,selectPrevBox:L}=useSingleBox.useSingleBox(),{switchToNextSphere:V}=useSphere.useSphere(),{updateRotate:h}=useRotate.useRotate({currentData:n}),{updateRotateEdge:b}=useRotateEdge.useRotateEdge({currentData:n}),g=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:x}=g,p=(r=(s=g==null?void 0:g.topViewInstance)==null?void 0:s.toolScheduler)==null?void 0:r.getCurrentToolName(),t=()=>{h(-Number(g.rectRotateSensitivity))},a=()=>{h(g.rectRotateSensitivity)},f=()=>{b(-90)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$2,{onChange:q=>{var I;(I=x==null?void 0:x.pointCloudInstance)==null||I.updatePointSize({customSize:q})}}),React__default.default.createElement("span",{onClick:a,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:t,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){V(ESortDirection.descend);return}L(!0)},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{if(p===EToolName.Point){V(ESortDirection.ascend);return}E(!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:v}))},ZAxisSlider=({setZAxisLimit:n,zAxisLimit:s,checkMode:r})=>r?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:s,onAfterChange:v=>{n(v)}})),PointCloudTopView=({currentData:n,imgList:s,stepInfo:r,drawLayerSlot:v,checkMode:c,intelligentFit:w,setIsEnlargeTopView:P,isEnlargeTopView:E,onExitZoom:L,highlightAttribute:V})=>{var h,b;const[g,x]=React.useState({zoom:1,currentPos:{x:0,y:0}}),p=React.useRef(null),t=React.useContext(PointCloudContext.PointCloudContext),a=useSize(p),f=index.jsonParser(r.config),{setZoom:q,syncTopviewToolZoom:I}=useZoom.useZoom(),{hideAttributes:k,setIsLargeStatus:A,selectedID:U,pointCloudBoxList:Z}=t,{addPolygon:z,deletePolygon:H}=usePolygon.usePolygon(),{deletePointCloudSphere:F}=useSphere.useSphere(),{deletePointCloudBox:W,changeValidByID:$}=useSingleBox.useSingleBox(),[j,M]=React.useState(10),{t:T}=reactI18next.useTranslation(),C=usePointCloudViews.usePointCloudViews(),{pushHistoryWithList:K}=useHistory.useHistory(),[X,O]=React.useState(!0),[B,D]=React.useState(!1);React.useLayoutEffect(()=>{if(!t.topViewInstance&&p.current&&(n==null?void 0:n.url)&&(n==null?void 0:n.result)){const o={width:p.current.clientWidth,height:p.current.clientHeight},l=new lbAnnotation.PointCloudAnnotation({container:p.current,size:o,pcdPath:n.url,config:__spreadProps(__spreadValues({},f),{pointCloudPattern:t.pointCloudPattern}),checkMode:c,toolName:ToolUtils.getPointCloudToolList(),proxyMode:c,view:"topView"});t.setTopViewInstance(l)}},[n]),React.useEffect(()=>{B&&U&&(t.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Single,Z),D(!1))},[B]),React.useEffect(()=>{if(!a||!t.topViewInstance||!t.sideViewInstance)return;const{toolInstance:o}=t.topViewInstance;o.singleOn("dataUpdated",(e,i)=>{const u=___default.default.cloneDeep(e).map(d=>__spreadProps(__spreadValues({},d),{pointList:lbUtils.PointCloudUtils.pointListTransferCanvas2World(d.pointList,a)}));t.setSelectedIDs(i),t.setLineList(u),K({lineList:u})}),o.singleOn("pointCreated",(e,i)=>{C.topViewAddSphere({newPoint:e,size:a,trackConfigurable:f.trackConfigurable,zoom:i})}),o.singleOn("pointDeleted",e=>{F(e)}),o.singleOn("pointSelected",e=>{t.setSelectedIDs([e])}),o.singleOn("updatePointByDrag",(e,i)=>{var u;(u=C.topViewUpdatePoint)==null||u.call(C,e,a)}),o.singleOn("polygonCreated",(e,i)=>{if(o.pattern===EPolygonPattern.Normal||!(n==null?void 0:n.url)){const u=__spreadProps(__spreadValues({},e),{pointList:e.pointList.map(d=>lbUtils.PointCloudUtils.transferCanvas2World(d,a))});z(u),t.setSelectedIDs(k.includes(e.attribute)?"":e.id);return}O(!1),C.topViewAddBox({polygon:e,size:a,imgList:s,trackConfigurable:f.trackConfigurable,zoom:i,intelligentFit:w}),D(!0)}),o.singleOn("deletedObject",({id:e})=>{W(e),H(e)}),o.singleOn("deleteSelectedIDs",()=>{t.setSelectedIDs([])}),o.singleOn("addSelectedIDs",e=>{t.addSelectedID(e)}),o.singleOn("setSelectedIDs",e=>{O(!1),t.setSelectedIDs(e)}),o.singleOn("updatePolygonByDrag",e=>{var i;(i=C.topViewUpdateBox)==null||i.call(C,e,a)});const l=e=>{var i;const u=$(e);u&&t.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Default,u),t.polygonList.find(d=>d.id===e)&&((i=t.topViewInstance)==null||i.toolInstance.setPolygonValidAndRender(e,!0))};return o.on("validUpdate",l),()=>{o.unbind("validUpdate",l)}},[t,a,n,C,t.polygonList,t.lineList,(h=t.topViewInstance)==null?void 0:h.toolInstance]),React.useEffect(()=>{var o,l;if(!t.topViewInstance)return;const e=(l=(o=f==null?void 0:f.attributeList)==null?void 0:o[0])==null?void 0:l.value;e&&t.topViewInstance.toolInstance.setDefaultAttribute(e)},[t.topViewInstance]),React.useEffect(()=>{if(!(a==null?void 0:a.width)||!t.topViewInstance)return;t.topViewInstance.initSize(a),t.topViewInstance.updatePolygonList(t.displayPointCloudList,t.polygonList),t.topViewInstance.updatePointList(t.displaySphereList),t.topViewInstance.updateLineList(t.displayLineList);const{topViewInstance:{pointCloudInstance:o,toolInstance:l}}=t;l.singleOn("renderZoom",(e,i)=>{const{offsetX:u,offsetY:d}=TransferCanvas2WorldOffset(i,a,e);if(o.camera.zoom=e,i){const{x:m,y,z:S}=o.initCameraPosition;o.camera.position.set(m+d,y-u,S)}o.camera.updateProjectionMatrix(),o.render(),q(e),I(i,e,a),x({zoom:e,currentPos:i})}),l.singleOn("dragMove",({currentPos:e,zoom:i})=>{const{offsetX:u,offsetY:d}=TransferCanvas2WorldOffset(e,a,i);o.camera.zoom=i;const{x:m,y,z:S}=o.initCameraPosition;o.camera.position.set(m+d,y-u,S),o.render(),I(e,i,a),x({zoom:i,currentPos:e})})},[a,t.topViewInstance,(b=t.topViewInstance)==null?void 0:b.toolInstance]),React.useEffect(()=>{var o,l;(l=(o=t.topViewInstance)==null?void 0:o.pointCloudInstance)==null||l.applyZAxisPoints(j)},[j]),React.useEffect(()=>{var o,l,e,i;C.topViewSelectedChanged({}),(i=(e=(l=(o=t.topViewInstance)==null?void 0:o.toolInstance)==null?void 0:l.selection)==null?void 0:e.hardSetSelectedIDs)==null||i.call(e,t.selectedIDs)},[t.selectedIDs]),React.useEffect(()=>{const{topViewInstance:o,selectedID:l,selectedPointCloudBox:e,zoom:i}=t;if(!o||!l||!e||!X){O(!0);return}const{center:u}=e,{pointCloudInstance:d,toolInstance:m}=o,y=m.polygonList.find(G=>G.id===t.selectedID);if(!y){O(!0);return}const S=lbAnnotation.MathUtils.getRectCenterPoint(y.pointList),R=lbAnnotation.MathUtils.getCurrentPosFromRectCenter(m.size,S,i);m.setCurrentPos(R),m.render();const{x:J,y:Q,z:Y}=d.initCameraPosition;d.camera.position.set(u.x,u.y,Y),d.render(),I(R,i,a),x({zoom:i,currentPos:R})},[t.selectedID]),React.useEffect(()=>(window.addEventListener("keydown",N),()=>{window.removeEventListener("keydown",N)}),[]);const N=o=>{const{keyCode:l}=o;l===EKeyCode.Esc&&L()};return React.useEffect(()=>{var o,l,e;(e=(l=(o=t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null?void 0:l.setHighlightAttribute)==null||e.call(l,V)},[t.topViewInstance,V]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:E?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",position:"relative"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{L()}}),React__default.default.createElement("span",null,T("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:T("TopView"),onClick:()=>{A(!0),P(!0)}}),toolbar:React__default.default.createElement(TopViewToolbar,{currentData:n})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:p},v==null?void 0:v(g)),!E&&React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:c,config:f}),React__default.default.createElement(ZAxisSlider,{checkMode:c,zAxisLimit:j,setZAxisLimit:M}),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"),ToolPointCloudBoxRenderHelper=require("../../utils/ToolPointCloudBoxRenderHelper.js"),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"),ahooks=require("ahooks");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}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=(n,s,r)=>s in n?__defProp(n,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[s]=r,__spreadValues=(n,s)=>{for(var r in s||(s={}))__hasOwnProp.call(s,r)&&__defNormalProp(n,r,s[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(s))__propIsEnum.call(s,r)&&__defNormalProp(n,r,s[r]);return n},__spreadProps=(n,s)=>__defProps(n,__getOwnPropDescs(s));const{EPolygonPattern,EToolName}=lbAnnotation.cTool,{ESortDirection}=lbAnnotation.cAnnotation,EKeyCode=lbAnnotation.cKeyCode.default,TransferCanvas2WorldOffset=(n,s,r=1)=>{const{width:v,height:c}=s,w={x:n.x+v*r/2,y:n.y+c*r/2},P={x:s.width/2,y:s.height/2};return{offsetX:(P.x-w.x)/r,offsetY:-(P.y-w.y)/r}},TopViewToolbar=({currentData:n})=>{var s,r;const{zoom:v,zoomIn:c,zoomOut:w,initialPosition:P}=useZoom.useZoom(),{selectNextBox:E,selectPrevBox:L}=useSingleBox.useSingleBox(),{switchToNextSphere:h}=useSphere.useSphere(),{updateRotate:S}=useRotate.useRotate({currentData:n}),{updateRotateEdge:b}=useRotateEdge.useRotateEdge({currentData:n}),g=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:x}=g,p=(r=(s=g==null?void 0:g.topViewInstance)==null?void 0:s.toolScheduler)==null?void 0:r.getCurrentToolName(),t=()=>{S(-Number(g.rectRotateSensitivity))},a=()=>{S(g.rectRotateSensitivity)},f=()=>{b(-90)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$2,{onChange:O=>{var I;(I=x==null?void 0:x.pointCloudInstance)==null||I.updatePointSize({customSize:O})}}),React__default.default.createElement("span",{onClick:a,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:t,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){h(ESortDirection.descend);return}L(!0)},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{if(p===EToolName.Point){h(ESortDirection.ascend);return}E(!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:v}))},ZAxisSlider=({setZAxisLimit:n,zAxisLimit:s,checkMode:r})=>r?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:s,onAfterChange:v=>{n(v)}})),PointCloudTopView=({currentData:n,imgList:s,stepInfo:r,drawLayerSlot:v,checkMode:c,intelligentFit:w,setIsEnlargeTopView:P,isEnlargeTopView:E,onExitZoom:L,highlightAttribute:h})=>{var S,b;const[g,x]=React.useState({zoom:1,currentPos:{x:0,y:0}}),p=React.useRef(null),t=React.useContext(PointCloudContext.PointCloudContext),a=useSize(p),f=index.jsonParser(r.config),{setZoom:O,syncTopviewToolZoom:I}=useZoom.useZoom(),{run:k}=ahooks.useDebounceFn(O,{wait:500}),{hideAttributes:A,setIsLargeStatus:U,selectedID:Z,pointCloudBoxList:z}=t,{addPolygon:H,deletePolygon:F}=usePolygon.usePolygon(),{deletePointCloudSphere:W}=useSphere.useSphere(),{deletePointCloudBox:$,changeValidByID:M}=useSingleBox.useSingleBox(),[j,K]=React.useState(10),{t:T}=reactI18next.useTranslation(),C=usePointCloudViews.usePointCloudViews(),{pushHistoryWithList:X}=useHistory.useHistory(),[Y,q]=React.useState(!0),[D,B]=React.useState(!1);React.useLayoutEffect(()=>{if(!t.topViewInstance&&p.current&&(n==null?void 0:n.url)&&(n==null?void 0:n.result)){const o={width:p.current.clientWidth,height:p.current.clientHeight},l=new lbAnnotation.PointCloudAnnotation({container:p.current,size:o,pcdPath:n.url,config:__spreadProps(__spreadValues({},f),{pointCloudPattern:t.pointCloudPattern}),checkMode:c,toolName:ToolUtils.getPointCloudToolList(),proxyMode:c,view:"topView"});t.setTopViewInstance(l)}},[n]),React.useEffect(()=>{D&&Z&&(t.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Single,z),B(!1))},[D]),React.useEffect(()=>{if(!a||!t.topViewInstance||!t.sideViewInstance)return;const{toolInstance:o}=t.topViewInstance;o.singleOn("dataUpdated",(e,i)=>{const u=___default.default.cloneDeep(e).map(d=>__spreadProps(__spreadValues({},d),{pointList:lbUtils.PointCloudUtils.pointListTransferCanvas2World(d.pointList,a)}));t.setSelectedIDs(i),t.setLineList(u),X({lineList:u})}),o.singleOn("pointCreated",(e,i)=>{C.topViewAddSphere({newPoint:e,size:a,trackConfigurable:f.trackConfigurable,zoom:i})}),o.singleOn("pointDeleted",e=>{W(e)}),o.singleOn("pointSelected",e=>{t.setSelectedIDs([e])}),o.singleOn("updatePointByDrag",(e,i)=>{var u;(u=C.topViewUpdatePoint)==null||u.call(C,e,a)}),o.singleOn("polygonCreated",(e,i)=>{if(o.pattern===EPolygonPattern.Normal||!(n==null?void 0:n.url)){const u=__spreadProps(__spreadValues({},e),{pointList:e.pointList.map(d=>lbUtils.PointCloudUtils.transferCanvas2World(d,a))});H(u),t.setSelectedIDs(A.includes(e.attribute)?"":e.id);return}q(!1),C.topViewAddBox({polygon:e,size:a,imgList:s,trackConfigurable:f.trackConfigurable,zoom:i,intelligentFit:w}),B(!0)}),o.singleOn("deletedObject",({id:e})=>{$(e),F(e)}),o.singleOn("deleteSelectedIDs",()=>{t.setSelectedIDs([])}),o.singleOn("addSelectedIDs",e=>{t.addSelectedID(e)}),o.singleOn("setSelectedIDs",e=>{q(!1),t.setSelectedIDs(e)}),o.singleOn("updatePolygonByDrag",e=>{var i;(i=C.topViewUpdateBox)==null||i.call(C,e,a)});const l=e=>{var i;const u=M(e);u&&t.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Default,u),t.polygonList.find(d=>d.id===e)&&((i=t.topViewInstance)==null||i.toolInstance.setPolygonValidAndRender(e,!0))};return o.on("validUpdate",l),()=>{o.unbind("validUpdate",l)}},[t,a,n,C,t.polygonList,t.lineList,(S=t.topViewInstance)==null?void 0:S.toolInstance]),React.useEffect(()=>{var o,l;if(!t.topViewInstance)return;const e=(l=(o=f==null?void 0:f.attributeList)==null?void 0:o[0])==null?void 0:l.value;e&&t.topViewInstance.toolInstance.setDefaultAttribute(e)},[t.topViewInstance]),React.useEffect(()=>{if(!(a==null?void 0:a.width)||!t.topViewInstance)return;t.topViewInstance.initSize(a),t.topViewInstance.updatePolygonList(t.displayPointCloudList,t.polygonList),t.topViewInstance.updatePointList(t.displaySphereList),t.topViewInstance.updateLineList(t.displayLineList);const{topViewInstance:{pointCloudInstance:o,toolInstance:l}}=t;l.singleOn("renderZoom",(e,i)=>{const{offsetX:u,offsetY:d}=TransferCanvas2WorldOffset(i,a,e);if(o.camera.zoom=e,i){const{x:m,y,z:V}=o.initCameraPosition;o.camera.position.set(m+d,y-u,V)}o.camera.updateProjectionMatrix(),o.render(),k(e),I(i,e,a),x({zoom:e,currentPos:i})}),l.singleOn("dragMove",({currentPos:e,zoom:i})=>{const{offsetX:u,offsetY:d}=TransferCanvas2WorldOffset(e,a,i);o.camera.zoom=i;const{x:m,y,z:V}=o.initCameraPosition;o.camera.position.set(m+d,y-u,V),o.render(),I(e,i,a),x({zoom:i,currentPos:e})})},[a,t.topViewInstance,(b=t.topViewInstance)==null?void 0:b.toolInstance]),React.useEffect(()=>{var o,l;(l=(o=t.topViewInstance)==null?void 0:o.pointCloudInstance)==null||l.applyZAxisPoints(j)},[j]),React.useEffect(()=>{var o,l,e,i;C.topViewSelectedChanged({}),(i=(e=(l=(o=t.topViewInstance)==null?void 0:o.toolInstance)==null?void 0:l.selection)==null?void 0:e.hardSetSelectedIDs)==null||i.call(e,t.selectedIDs)},[t.selectedIDs]),React.useEffect(()=>{const{topViewInstance:o,selectedID:l,selectedPointCloudBox:e,zoom:i}=t;if(!o||!l||!e||!Y){q(!0);return}const{center:u}=e,{pointCloudInstance:d,toolInstance:m}=o,y=m.polygonList.find(J=>J.id===t.selectedID);if(!y){q(!0);return}const V=lbAnnotation.MathUtils.getRectCenterPoint(y.pointList),R=lbAnnotation.MathUtils.getCurrentPosFromRectCenter(m.size,V,i);m.setCurrentPos(R),m.render();const{x:Q,y:ee,z:G}=d.initCameraPosition;d.camera.position.set(u.x,u.y,G),d.render(),I(R,i,a),x({zoom:i,currentPos:R})},[t.selectedID]),React.useEffect(()=>(window.addEventListener("keydown",N),()=>{window.removeEventListener("keydown",N)}),[]);const N=o=>{const{keyCode:l}=o;l===EKeyCode.Esc&&L()};return React.useEffect(()=>{var o,l,e;(e=(l=(o=t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null?void 0:l.setHighlightAttribute)==null||e.call(l,h)},[t.topViewInstance,h]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:E?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",position:"relative"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{L()}}),React__default.default.createElement("span",null,T("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:T("TopView"),onClick:()=>{U(!0),P(!0)}}),toolbar:React__default.default.createElement(TopViewToolbar,{currentData:n})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:p},v==null?void 0:v(g)),!E&&React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:c,config:f}),React__default.default.createElement(ZAxisSlider,{checkMode:c,zAxisLimit:j,setZAxisLimit:K}),React__default.default.createElement(PointCloudInfos.PointCloudValidity,null)))};var PointCloudTopView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudTopView);module.exports=PointCloudTopView$1;