@labelbee/lb-components 1.8.0-alpha.3 → 1.8.0-alpha.5

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 (51) hide show
  1. package/dist/components/pointCloudView/PointCloud3DView.js +1 -1
  2. package/dist/components/pointCloudView/PointCloudContext.js +1 -1
  3. package/dist/components/pointCloudView/PointCloudListener.js +1 -1
  4. package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
  5. package/dist/components/pointCloudView/hooks/useAttribute.js +1 -1
  6. package/dist/components/pointCloudView/hooks/useConfig.js +1 -1
  7. package/dist/components/pointCloudView/hooks/useHistory.js +1 -1
  8. package/dist/components/pointCloudView/hooks/useSingleBox.js +1 -1
  9. package/dist/components/pointCloudView/hooks/useStatus.js +1 -1
  10. package/dist/store/annotation/map.js +1 -1
  11. package/dist/types/components/pointCloudView/PointCloud2DView.d.ts +1 -1
  12. package/dist/types/components/pointCloudView/PointCloud3DView.d.ts +1 -1
  13. package/dist/types/components/pointCloudView/PointCloudBackView.d.ts +1 -1
  14. package/dist/types/components/pointCloudView/PointCloudContext.d.ts +5 -1
  15. package/dist/types/components/pointCloudView/PointCloudListener.d.ts +1 -1
  16. package/dist/types/components/pointCloudView/PointCloudSideView.d.ts +1 -1
  17. package/dist/types/components/pointCloudView/PointCloudTopView.d.ts +1 -1
  18. package/dist/types/components/pointCloudView/hooks/useSingleBox.d.ts +1 -0
  19. package/dist/types/components/pointCloudView/hooks/useStatus.d.ts +1 -1
  20. package/dist/types/store/annotation/map.d.ts +2 -0
  21. package/dist/types/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.d.ts +2 -0
  22. package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  23. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  24. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -1
  25. package/es/components/pointCloudView/PointCloud3DView.js +1 -1
  26. package/es/components/pointCloudView/PointCloud3DView.js.map +1 -1
  27. package/es/components/pointCloudView/PointCloudContext.js +1 -1
  28. package/es/components/pointCloudView/PointCloudContext.js.map +1 -1
  29. package/es/components/pointCloudView/PointCloudListener.js +1 -1
  30. package/es/components/pointCloudView/PointCloudListener.js.map +1 -1
  31. package/es/components/pointCloudView/PointCloudTopView.js +1 -1
  32. package/es/components/pointCloudView/PointCloudTopView.js.map +1 -1
  33. package/es/components/pointCloudView/hooks/useAttribute.js +1 -1
  34. package/es/components/pointCloudView/hooks/useAttribute.js.map +1 -1
  35. package/es/components/pointCloudView/hooks/useConfig.js +1 -1
  36. package/es/components/pointCloudView/hooks/useConfig.js.map +1 -1
  37. package/es/components/pointCloudView/hooks/useHistory.js +1 -1
  38. package/es/components/pointCloudView/hooks/useHistory.js.map +1 -1
  39. package/es/components/pointCloudView/hooks/useSingleBox.js +1 -1
  40. package/es/components/pointCloudView/hooks/useSingleBox.js.map +1 -1
  41. package/es/components/pointCloudView/hooks/useStatus.js +1 -1
  42. package/es/components/pointCloudView/hooks/useStatus.js.map +1 -1
  43. package/es/store/annotation/map.js +1 -1
  44. package/es/store/annotation/map.js.map +1 -1
  45. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  46. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -1
  47. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  48. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -1
  49. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -1
  50. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js.map +1 -1
  51. package/package.json +4 -4
@@ -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"),antd=require("antd"),useSize=require("../../hooks/useSize.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}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=(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 pointCloudID="LABELBEE-POINTCLOUD",PointCloud3DContext=React__default.default.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{}}),PointCloudViewIcon=({perspectiveView:e})=>{const{isActive:t,setTarget3DView:r}=React.useContext(PointCloud3DContext),o=c=>classNames__default.default({[dom.getClassName("point-cloud-3d-view",c)]:!0,active:t});return React__default.default.createElement("span",{onClick:()=>{r(lbUtils.EPerspectiveView[e])},className:o(e.toLocaleLowerCase())})},PointCloud3DSideBar=()=>{const{reset3DView:e}=React.useContext(PointCloud3DContext);return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebar")},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"}),React__default.default.createElement("span",{onClick:()=>{e()},className:dom.getClassName("point-cloud-3d-view","reset")}))},PointCloud3D=({currentData:e,config:t})=>{var r;const o=React.useContext(PointCloudContext.PointCloudContext),[c,C]=React.useState(!0),u=React.useRef(null),{initPointCloud3d:d}=usePointCloudViews.usePointCloudViews(),n=useSize(u),{t:v}=reactI18next.useTranslation();React.useEffect(()=>{!o.mainViewInstance||d==null||d(n)},[n]);const{selectedBox:l}=useSingleBox.useSingleBox(),m=i=>{var a;const s=l==null?void 0:l.info;s&&((a=o.mainViewInstance)==null||a.updateCameraByBox(s,i))},w=()=>{var i;(i=o.mainViewInstance)==null||i.resetCamera()};React.useEffect(()=>{var i;if(u.current&&(e==null?void 0:e.url)){let a=o.mainViewInstance;if(!a&&n.width){const s={left:-n.width/2,right:n.width/2,top:n.height/2,bottom:-n.height/2,near:100,far:-100};a=new lbAnnotation.PointCloud({container:u.current,isOrthographicCamera:!0,orthographicParams:s}),o.setMainViewInstance(a)}if(e.result){const s=lbUtils.PointCloudUtils.getBoxParamsFromResultList(e.result);s.forEach(p=>{var f;const x=(f=lbUtils.toolStyleConverter.getColorFromConfig({attribute:p.attribute},__spreadProps(__spreadValues({},t),{attributeConfigurable:!0}),{}))==null?void 0:f.hex;a==null||a.generateBox(p,x)}),o.setPointCloudResult(s),o.setPointCloudValid((i=index.jsonParser(e.result))==null?void 0:i.valid)}}},[e,n]),React.useEffect(()=>{l&&m(lbUtils.EPerspectiveView.Top)},[l]);const P=React.useMemo(()=>({reset3DView:w,setTarget3DView:m,isActive:!!l}),[l]),g=React__default.default.createElement("div",null,React__default.default.createElement("span",{style:{marginRight:8}},v("ShowArrows")),React__default.default.createElement(antd.Switch,{size:"small",checked:c,onChange:i=>{var a;C(i),(a=o.mainViewInstance)==null||a.setShowDirection(i)}}));return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-3d-container"),title:v("3DView"),toolbar:g,style:{height:e.mappingImgList&&((r=e.mappingImgList)==null?void 0:r.length)>0?"55%":"100%"}},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-content")},React__default.default.createElement(PointCloud3DContext.Provider,{value:P},React__default.default.createElement(PointCloud3DSideBar,null)),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-view"),id:pointCloudID,ref:u})))};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"),antd=require("antd"),useSize=require("../../hooks/useSize.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}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=(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 pointCloudID="LABELBEE-POINTCLOUD",PointCloud3DContext=React__default.default.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{}}),PointCloudViewIcon=({perspectiveView:e})=>{const{isActive:t,setTarget3DView:r}=React.useContext(PointCloud3DContext),o=c=>classNames__default.default({[dom.getClassName("point-cloud-3d-view",c)]:!0,active:t});return React__default.default.createElement("span",{onClick:()=>{r(lbUtils.EPerspectiveView[e])},className:o(e.toLocaleLowerCase())})},PointCloud3DSideBar=()=>{const{reset3DView:e}=React.useContext(PointCloud3DContext);return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebar")},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"}),React__default.default.createElement("span",{onClick:()=>{e()},className:dom.getClassName("point-cloud-3d-view","reset")}))},PointCloud3D=({currentData:e,config:t})=>{var r;const o=React.useContext(PointCloudContext.PointCloudContext),[c,C]=React.useState(!0),u=React.useRef(null),{initPointCloud3d:d}=usePointCloudViews.usePointCloudViews(),n=useSize(u),{t:v}=reactI18next.useTranslation();React.useEffect(()=>{!o.mainViewInstance||d==null||d(n)},[n]);const{selectedBox:l}=useSingleBox.useSingleBox(),m=i=>{var a;const s=l==null?void 0:l.info;s&&((a=o.mainViewInstance)==null||a.updateCameraByBox(s,i))},w=()=>{var i;(i=o.mainViewInstance)==null||i.resetCamera()};React.useEffect(()=>{var i;if(u.current&&(e==null?void 0:e.url)){let a=o.mainViewInstance;if(!a&&n.width){const s={left:-n.width/2,right:n.width/2,top:n.height/2,bottom:-n.height/2,near:100,far:-100};a=new lbAnnotation.PointCloud({container:u.current,isOrthographicCamera:!0,orthographicParams:s,config:t}),o.setMainViewInstance(a)}if(e.result){const s=lbUtils.PointCloudUtils.getBoxParamsFromResultList(e.result);s.forEach(p=>{var f;const x=(f=lbUtils.toolStyleConverter.getColorFromConfig({attribute:p.attribute},__spreadProps(__spreadValues({},t),{attributeConfigurable:!0}),{}))==null?void 0:f.hex;a==null||a.generateBox(p,x)}),o.setPointCloudResult(s),o.setPointCloudValid((i=index.jsonParser(e.result))==null?void 0:i.valid)}}},[e,n]),React.useEffect(()=>{l&&m(lbUtils.EPerspectiveView.Top)},[l]);const P=React.useMemo(()=>({reset3DView:w,setTarget3DView:m,isActive:!!l}),[l]),g=React__default.default.createElement("div",null,React__default.default.createElement("span",{style:{marginRight:8}},v("ShowArrows")),React__default.default.createElement(antd.Switch,{size:"small",checked:c,onChange:i=>{var a;C(i),(a=o.mainViewInstance)==null||a.setShowDirection(i)}}));return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-3d-container"),title:v("3DView"),toolbar:g,style:{height:e.mappingImgList&&((r=e.mappingImgList)==null?void 0:r.length)>0?"55%":"100%"}},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-content")},React__default.default.createElement(PointCloud3DContext.Provider,{value:P},React__default.default.createElement(PointCloud3DSideBar,null)),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-view"),id:pointCloudID,ref:u})))};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 lbAnnotation=require("@labelbee/lb-annotation"),React=require("react");function _interopDefaultLegacy(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var React__default=_interopDefaultLegacy(React);const PointCloudContext=React__default.default.createContext({pointCloudBoxList:[],polygonList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],setPolygonList:()=>{},zoom:1,setZoom:()=>{},history:new lbAnnotation.ActionsHistory,syncAllViewPointCloudColor:()=>{}}),PointCloudProvider=({children:o})=>{const[s,r]=React.useState([]),[u,V]=React.useState([]),[t,a]=React.useState([]),[C,I]=React.useState(!0),[P,v]=React.useState(1),[c,x]=React.useState(),[f,m]=React.useState(),[w,A]=React.useState(),[i,g]=React.useState(),B=React.useRef(new lbAnnotation.ActionsHistory).current,S=React.useMemo(()=>t.length===1?t[0]:"",[t]),h=React.useMemo(()=>{const L=s.find(e=>e.id===S),b=e=>{const n=s.concat(e);return r(n),n},_=e=>{I(e!==!1)},l=e=>{e===void 0&&a([]),typeof e=="string"&&a([e]),Array.isArray(e)&&a(Array.from(new Set(e)))};return{selectedID:S,pointCloudBoxList:s,selectedIDs:t,setPointCloudResult:r,setSelectedIDs:l,addPointCloudBox:b,valid:C,selectedPointCloudBox:L,setPointCloudValid:_,addSelectedID:e=>{t.includes(e)?l(t.filter(n=>n!==e)):l([...t,e])},selectedAllBoxes:()=>{l(s.map(e=>e.id))},topViewInstance:c,setTopViewInstance:x,sideViewInstance:f,setSideViewInstance:m,backViewInstance:w,setBackViewInstance:A,mainViewInstance:i,setMainViewInstance:g,polygonList:u,setPolygonList:V,zoom:P,setZoom:v,history:B,syncAllViewPointCloudColor:e=>{const n=i==null?void 0:i.highlightOriginPointCloud(e);return new Promise(D=>{n==null||n.then(d=>{[c].forEach(p=>{var y;d&&((y=p==null?void 0:p.pointCloudInstance)==null||y.updateColor(d),D({color:d}))})})})}}},[C,t,s,u,c,f,w,i,P]);return React__default.default.createElement(PointCloudContext.Provider,{value:h},o)};exports.PointCloudContext=PointCloudContext,exports.PointCloudProvider=PointCloudProvider;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbAnnotation=require("@labelbee/lb-annotation"),React=require("react");function _interopDefaultLegacy(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var React__default=_interopDefaultLegacy(React);const PointCloudContext=React__default.default.createContext({pointCloudBoxList:[],polygonList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],setPolygonList:()=>{},zoom:1,setZoom:()=>{},history:new lbAnnotation.ActionsHistory,syncAllViewPointCloudColor:()=>{},defaultAttribute:"",setDefaultAttribute:()=>{},pointCloudPattern:lbAnnotation.EToolName.Rect,setPointCloudPattern:()=>{}}),PointCloudProvider=({children:o})=>{const[s,d]=React.useState([]),[c,v]=React.useState([]),[e,a]=React.useState([]),[C,A]=React.useState(!0),[P,x]=React.useState(1),[u,m]=React.useState(),[f,b]=React.useState(),[S,g]=React.useState(),[i,B]=React.useState(),[p,h]=React.useState(""),[w,L]=React.useState(lbAnnotation.EToolName.Rect),D=React.useRef(new lbAnnotation.ActionsHistory).current,y=React.useMemo(()=>e.length===1?e[0]:"",[e]),R=React.useMemo(()=>{const _=s.find(t=>t.id===y),M=t=>{const n=s.concat(t);return d(n),n},E=t=>{A(t!==!1)},l=t=>{t===void 0&&a([]),typeof t=="string"&&a([t]),Array.isArray(t)&&a(Array.from(new Set(t)))};return{selectedID:y,pointCloudBoxList:s,selectedIDs:e,setPointCloudResult:d,setSelectedIDs:l,addPointCloudBox:M,valid:C,selectedPointCloudBox:_,setPointCloudValid:E,addSelectedID:t=>{e.includes(t)?l(e.filter(n=>n!==t)):l([...e,t])},selectedAllBoxes:()=>{l(s.map(t=>t.id))},topViewInstance:u,setTopViewInstance:m,sideViewInstance:f,setSideViewInstance:b,backViewInstance:S,setBackViewInstance:g,mainViewInstance:i,setMainViewInstance:B,polygonList:c,setPolygonList:v,zoom:P,setZoom:x,history:D,syncAllViewPointCloudColor:t=>{const n=i==null?void 0:i.highlightOriginPointCloud(t);return new Promise(T=>{n==null||n.then(r=>{[u].forEach(V=>{var I;r&&((I=V==null?void 0:V.pointCloudInstance)==null||I.updateColor(r),T({color:r}))})})})},defaultAttribute:p,setDefaultAttribute:h,pointCloudPattern:w,setPointCloudPattern:L}},[C,e,s,c,u,f,S,i,P,p,w]);return React__default.default.createElement(PointCloudContext.Provider,{value:R},o)};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"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),annotation=require("../../hooks/annotation.js"),useStatus=require("./hooks/useStatus.js"),index=require("../../utils/index.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"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,r,i)=>r in n?__defProp(n,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[r]=i,__spreadValues=(n,r)=>{for(var i in r||(r={}))__hasOwnProp.call(r,i)&&__defNormalProp(n,i,r[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(r))__propIsEnum.call(r,i)&&__defNormalProp(n,i,r[i]);return n},__spreadProps=(n,r)=>__defProps(n,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:n,config:r,checkMode:i})=>{const o=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:m,selectNextBox:g,selectPrevBox:h,updateSelectedBox:b}=useSingleBox.useSingleBox(),{clearAllResult:p}=useStatus.useStatus(),k=index.jsonParser(n.result),{copySelectedBoxes:_,pasteSelectedBoxes:B,copiedBoxes:S}=useBoxes.useBoxes(),{toolInstanceRef:a}=annotation.useCustomToolInstance({basicInfo:k}),{updateRotate:v}=useRotate.useRotate({currentData:n}),{updatePointCloudData:f,topViewSelectedChanged:V}=usePointCloudViews.usePointCloudViews(),{redo:P,undo:y,pushHistoryWithList:I,pushHistoryUnderUpdatePolygon:A}=useHistory.useHistory(),{syncThreeViewsAttribute:C}=useAttribute.useAttribute(),{syncAllViewsConfig:O,reRenderTopViewRange:j}=useConfig.useConfig(),{selectedPolygon:w}=usePolygon.usePolygon(),q=(e,t)=>{var s;const{topViewInstance:u,mainViewInstance:c}=o;if(!u)return;const{pointCloud2dOperation:l}=u;switch(e){case"q":{v(2);break}case"e":v(-2);break;case"g":v(180);break;case"u":{const d=l.pattern===EPolygonPattern.Normal?EPolygonPattern.Rect:EPolygonPattern.Normal;l.setPattern(d);const E={[EPolygonPattern.Normal]:"Normal Pattern",[EPolygonPattern.Rect]:"Rect Pattern"};antd.message.success(`Change Pattern to ${E[d]} successfully`),l.clearActiveStatus(),l.clearDrawingStatus()}break;case"+":c==null||c.updatePointSize(!0);break;case"-":c==null||c.updatePointSize(!1);break;case"v":o.setPointCloudValid(!o.valid);break;case"tab":if(t.shiftKey){h();break}g();break;case"f":m();break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const d=lbAnnotation.AttributeUtils.getAttributeByKeycode(t.keyCode,r.attributeList);d!==void 0&&a.current.setDefaultAttribute(d)}return}}},L=(e,t)=>{switch(e){case"c":_();break;case"v":B();break;case"a":o.selectedAllBoxes();break;case"z":{t.shiftKey?P():y();break}}},x=e=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(e)||i===!0)return;const t=e.key.toLocaleLowerCase();if(e.ctrlKey){L(t,e);return}q(t,e)};return React.useEffect(()=>{const{topViewInstance:e}=o;if(!!e)return window.addEventListener("keydown",x),()=>{window.removeEventListener("keydown",x)}},[o,S,r,o.pointCloudBoxList,o.polygonList]),React.useEffect(()=>{O(r)},[r]),React.useEffect(()=>{(r==null?void 0:r.radius)&&j(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),React.useEffect(()=>{f==null||f()},[n,o.mainViewInstance]),React.useEffect(()=>{a.current.exportData=()=>[o.pointCloudBoxList,{valid:o.valid}],a.current.exportCustomData=()=>{var e;return{resultPolygon:(e=o.polygonList)!=null?e:[]}},a.current.setDefaultAttribute=e=>{C(e);const t=o.selectedPointCloudBox;if(t){t.attribute=e;const s=b(t);o.mainViewInstance&&V(t,s)}w&&A(__spreadProps(__spreadValues({},w),{attribute:e}))},a.current.setSubAttribute=(e,t)=>{var s;const u=o.selectedPointCloudBox;if(u){const c=(s=u==null?void 0:u.subAttribute)!=null?s:{};u.subAttribute=__spreadProps(__spreadValues({},c),{[e]:t}),b(u)}},a.current.clearResult=()=>{p==null||p()},a.current.redo=()=>{P()},a.current.undo=()=>{y()},a.current.setValid=e=>{a.current.valid=e,setTimeout(()=>{o.setPointCloudValid(e),e===!1&&p()})},a.current.setForbidOperation=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setForbidOperation(e),e===!0&&o.setSelectedIDs(void 0)},a.current.setShowDefaultCursor=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setShowDefaultCursor(e)}},[o.pointCloudBoxList,o.selectedID,o.valid,o.polygonList,o.mainViewInstance]),React.useEffect(()=>{a.current.history={pushHistory:e=>{I({pointCloudBoxList:e})},initRecord:()=>{}}},[]),React.useEffect(()=>{var e;const t=(e=o.topViewInstance)==null?void 0:e.pointCloud2dOperation;if(!t)return;const s=l=>{C(l)},u=l=>{antd.message.error(l)},c=l=>{antd.message.info(l)};return t.on("syncAttribute",s),t.on("messageError",u),t.on("messageInfo",c),()=>{t.unbind("syncAttribute",s),t.unbind("messageError",u),t.unbind("messageInfo",c)}},[o.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"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),annotation=require("../../hooks/annotation.js"),useStatus=require("./hooks/useStatus.js"),index=require("../../utils/index.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"),reactI18next=require("react-i18next"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,r,a)=>r in n?__defProp(n,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[r]=a,__spreadValues=(n,r)=>{for(var a in r||(r={}))__hasOwnProp.call(r,a)&&__defNormalProp(n,a,r[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(r))__propIsEnum.call(r,a)&&__defNormalProp(n,a,r[a]);return n},__spreadProps=(n,r)=>__defProps(n,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:n,config:r,checkMode:a,configString:m})=>{const o=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:k,selectNextBox:h,selectPrevBox:_,updateSelectedBox:P,deleteSelectedPointCloudBoxAndPolygon:B}=useSingleBox.useSingleBox(),{clearAllResult:p,updatePointCloudPattern:S}=useStatus.useStatus(),E=index.jsonParser(n.result),{copySelectedBoxes:I,pasteSelectedBoxes:V,copiedBoxes:A}=useBoxes.useBoxes(),{toolInstanceRef:i}=annotation.useCustomToolInstance({basicInfo:E}),{updateRotate:v}=useRotate.useRotate({currentData:n}),{updatePointCloudData:f,topViewSelectedChanged:q}=usePointCloudViews.usePointCloudViews(),{redo:y,undo:C,pushHistoryWithList:O,pushHistoryUnderUpdatePolygon:j}=useHistory.useHistory(),{syncThreeViewsAttribute:x}=useAttribute.useAttribute(),{syncAllViewsConfig:L,reRenderTopViewRange:R}=useConfig.useConfig(),{selectedPolygon:w}=usePolygon.usePolygon(),{t:b}=reactI18next.useTranslation(),T=(e,t)=>{var s;const{topViewInstance:u,mainViewInstance:l}=o;if(!u)return;const{pointCloud2dOperation:c}=u;switch(e){case"q":{v(2);break}case"e":v(-2);break;case"g":v(180);break;case"u":{const d=c.pattern===EPolygonPattern.Normal?lbAnnotation.EToolName.Rect:lbAnnotation.EToolName.Polygon;S(d);const N={[lbAnnotation.EToolName.Polygon]:b("PolygonPattern"),[lbAnnotation.EToolName.Rect]:b("RectPattern")};antd.message.success(b("ChangePatternMsg",{pattern:N[d]})),c.clearActiveStatus(),c.clearDrawingStatus()}break;case"+":l==null||l.updatePointSize(!0);break;case"-":l==null||l.updatePointSize(!1);break;case"v":o.setPointCloudValid(!o.valid);break;case"tab":if(t.shiftKey){_();break}h();break;case"f":k();break;case"delete":B();break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const d=lbAnnotation.AttributeUtils.getAttributeByKeycode(t.keyCode,r.attributeList);d!==void 0&&i.current.setDefaultAttribute(d)}return}}},D=(e,t)=>{switch(e){case"c":I();break;case"v":V();break;case"a":o.selectedAllBoxes();break;case"z":{t.shiftKey?y():C();break}}},g=e=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(e)||a===!0)return;const t=e.key.toLocaleLowerCase();if(e.ctrlKey){D(t,e);return}T(t,e)};return React.useEffect(()=>{const{topViewInstance:e}=o;if(!!e)return window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g)}},[o,A,r,o.pointCloudBoxList,o.polygonList]),React.useEffect(()=>{L(r)},[m]),React.useEffect(()=>{(r==null?void 0:r.radius)&&R(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),React.useEffect(()=>{f==null||f()},[n,o.mainViewInstance]),React.useEffect(()=>{i.current.exportData=()=>[o.pointCloudBoxList,{valid:o.valid}],i.current.exportCustomData=()=>{var e;return{resultPolygon:(e=o.polygonList)!=null?e:[]}},i.current.setDefaultAttribute=e=>{x(e);const t=o.selectedPointCloudBox;if(t){t.attribute=e;const s=P(t);o.mainViewInstance&&q(t,s)}w&&j(__spreadProps(__spreadValues({},w),{attribute:e}))},i.current.setSubAttribute=(e,t)=>{var s;const u=o.selectedPointCloudBox;if(u){const l=(s=u==null?void 0:u.subAttribute)!=null?s:{};u.subAttribute=__spreadProps(__spreadValues({},l),{[e]:t}),P(u)}},i.current.clearResult=()=>{p==null||p()},i.current.redo=()=>{y()},i.current.undo=()=>{C()},i.current.setValid=e=>{i.current.valid=e,setTimeout(()=>{o.setPointCloudValid(e),e===!1&&p()})},i.current.setForbidOperation=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setForbidOperation(e),e===!0&&o.setSelectedIDs(void 0)},i.current.setShowDefaultCursor=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setShowDefaultCursor(e)}},[o.pointCloudBoxList,o.selectedID,o.valid,o.polygonList,o.mainViewInstance]),React.useEffect(()=>{i.current.history={pushHistory:e=>{O({pointCloudBoxList:e})},initRecord:()=>{}}},[]),React.useEffect(()=>{var e;const t=(e=o.topViewInstance)==null?void 0:e.pointCloud2dOperation;if(!t||a)return;const s=c=>{x(c)},u=c=>{antd.message.error(c)},l=c=>{antd.message.info(c)};return t.on("syncAttribute",s),t.on("messageError",u),t.on("messageInfo",l),()=>{t.unbind("syncAttribute",s),t.unbind("messageError",u),t.unbind("messageInfo",l)}},[o.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 dom=require("../../utils/dom.js"),index$1=require("../../views/MainView/toolFooter/index.js"),index$2=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"),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");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,i,l)=>i in e?__defProp(e,i,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[i]=l,__spreadValues=(e,i)=>{for(var l in i||(i={}))__hasOwnProp.call(i,l)&&__defNormalProp(e,l,i[l]);if(__getOwnPropSymbols)for(var l of __getOwnPropSymbols(i))__propIsEnum.call(i,l)&&__defNormalProp(e,l,i[l]);return e},__spreadProps=(e,i)=>__defProps(e,__getOwnPropDescs(i));const{EPolygonPattern}=lbAnnotation.cTool,TransferCanvas2WorldOffset=(e,i,l=1)=>{const{width:d,height:p}=i,m={x:e.x+d*l/2,y:e.y+p*l/2},f={x:i.width/2,y:i.height/2};return{offsetX:(f.x-m.x)/l,offsetY:-(f.y-m.y)/l}},TopViewToolbar=({currentData:e})=>{const{zoom:i,zoomIn:l,zoomOut:d,initialPosition:p}=useZoom.useZoom(),{selectNextBox:m,selectPrevBox:f}=useSingleBox.useSingleBox(),{updateRotate:r}=useRotate.useRotate({currentData:e}),t=2,a=()=>{r(-t)},C=()=>{r(t)},P=()=>{r(180)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("span",{onClick:C,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:a,className:dom.getClassName("point-cloud","rotate")}),React__default.default.createElement("span",{onClick:P,className:dom.getClassName("point-cloud","rotate-180")}),React__default.default.createElement(index$1.FooterDivider,null),React__default.default.createElement(icons.UpSquareOutlined,{onClick:()=>{f()},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{m()},className:dom.getClassName("point-cloud","next")}),React__default.default.createElement(index$1.FooterDivider,null),React__default.default.createElement(index$2.ZoomController,{initialPosition:p,zoomIn:l,zoomOut:d,zoom:i}))},ZAxisSlider=({setZAxisLimit:e,zAxisLimit:i,checkMode:l})=>l?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:i,onAfterChange:d=>{e(d)}})),PointCloudTopView=({currentData:e,imgList:i,stepInfo:l,drawLayerSlot:d,checkMode:p})=>{const[m,f]=React.useState({zoom:1,currentPos:{x:0,y:0}}),r=React.useRef(null),t=React__default.default.useContext(PointCloudContext.PointCloudContext),a=useSize(r),C=index.jsonParser(l.config),{setZoom:P}=useZoom.useZoom(),{addPolygon:I,deletePolygon:O}=usePolygon.usePolygon(),{deletePointCloudBox:h,changeValidByID:E}=useSingleBox.useSingleBox(),[w,_]=React.useState(10),{t:q}=reactI18next.useTranslation(),g=usePointCloudViews.usePointCloudViews();return React.useLayoutEffect(()=>{if(!t.topViewInstance&&r.current&&(e==null?void 0:e.url)&&(e==null?void 0:e.result)){const n={width:r.current.clientWidth,height:r.current.clientHeight},u=new lbAnnotation.PointCloudAnnotation({container:r.current,size:n,pcdPath:e.url,config:C,checkMode:p});t.setTopViewInstance(u)}},[e]),React.useEffect(()=>{if(!a||!t.topViewInstance||!t.sideViewInstance)return;const{pointCloud2dOperation:n}=t.topViewInstance;n.singleOn("polygonCreated",(o,s)=>{if(n.pattern===EPolygonPattern.Normal||!(e==null?void 0:e.url)){const c=__spreadProps(__spreadValues({},o),{pointList:o.pointList.map(v=>lbUtils.PointCloudUtils.transferCanvas2World(v,a))});I(c),t.setSelectedIDs(o.id);return}g.topViewAddBox({newPolygon:o,size:a,imgList:i,trackConfigurable:C.trackConfigurable,zoom:s})}),n.singleOn("deletedObject",({id:o})=>{h(o),O(o)}),n.singleOn("deleteSelectedIDs",()=>{t.setSelectedIDs([])}),n.singleOn("addSelectedIDs",o=>{t.addSelectedID(o)}),n.singleOn("setSelectedIDs",o=>{t.setSelectedIDs(o)}),n.singleOn("updatePolygonByDrag",({newPolygon:o})=>{var s;(s=g.topViewUpdateBox)==null||s.call(g,o,a)});const u=o=>{var s;const c=E(o);c&&t.syncAllViewPointCloudColor(c),t.polygonList.find(v=>v.id===o)&&((s=t.topViewInstance)==null||s.pointCloud2dOperation.setPolygonValidAndRender(o,!0))};return n.on("validUpdate",u),()=>{n.unbind("validUpdate",u)}},[t,a,e,g,t.polygonList]),React.useEffect(()=>{if(!(a==null?void 0:a.width)||!t.topViewInstance)return;t.topViewInstance.initSize(a),t.topViewInstance.updatePolygonList(t.pointCloudBoxList,t.polygonList);const{topViewInstance:{pointCloudInstance:n,pointCloud2dOperation:u}}=t;u.singleOn("renderZoom",(o,s)=>{const{offsetX:c,offsetY:v}=TransferCanvas2WorldOffset(s,a,o);if(n.camera.zoom=o,s){const{x,y,z:V}=n.initCameraPosition;n.camera.position.set(x+v,y-c,V)}n.camera.updateProjectionMatrix(),n.render(),P(o),f({zoom:o,currentPos:s})}),u.singleOn("dragMove",({currentPos:o,zoom:s})=>{const{offsetX:c,offsetY:v}=TransferCanvas2WorldOffset(o,a,s);n.camera.zoom=s;const{x,y,z:V}=n.initCameraPosition;n.camera.position.set(x+v,y-c,V),n.render(),f({zoom:s,currentPos:o})})},[a,t.topViewInstance]),React.useEffect(()=>{var n,u;(u=(n=t.topViewInstance)==null?void 0:n.pointCloudInstance)==null||u.applyZAxisPoints(w)},[w]),React.useEffect(()=>{g.topViewSelectedChanged()},[t.selectedIDs]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:q("TopView"),toolbar:React__default.default.createElement(TopViewToolbar,{currentData:e})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:r},d==null?void 0:d(m)),React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:p,config:C}),React__default.default.createElement(ZAxisSlider,{checkMode:p,zAxisLimit:w,setZAxisLimit:_}),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$1=require("../../views/MainView/toolFooter/index.js"),index$2=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"),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");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,o,n)=>o in e?__defProp(e,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[o]=n,__spreadValues=(e,o)=>{for(var n in o||(o={}))__hasOwnProp.call(o,n)&&__defNormalProp(e,n,o[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(o))__propIsEnum.call(o,n)&&__defNormalProp(e,n,o[n]);return e},__spreadProps=(e,o)=>__defProps(e,__getOwnPropDescs(o));const{EPolygonPattern}=lbAnnotation.cTool,TransferCanvas2WorldOffset=(e,o,n=1)=>{const{width:c,height:p}=o,g={x:e.x+c*n/2,y:e.y+p*n/2},f={x:o.width/2,y:o.height/2};return{offsetX:(f.x-g.x)/n,offsetY:-(f.y-g.y)/n}},TopViewToolbar=({currentData:e})=>{const{zoom:o,zoomIn:n,zoomOut:c,initialPosition:p}=useZoom.useZoom(),{selectNextBox:g,selectPrevBox:f}=useSingleBox.useSingleBox(),{updateRotate:u}=useRotate.useRotate({currentData:e}),t=2,s=()=>{u(-t)},v=()=>{u(t)},w=()=>{u(180)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("span",{onClick:v,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:s,className:dom.getClassName("point-cloud","rotate")}),React__default.default.createElement("span",{onClick:w,className:dom.getClassName("point-cloud","rotate-180")}),React__default.default.createElement(index$1.FooterDivider,null),React__default.default.createElement(icons.UpSquareOutlined,{onClick:()=>{f()},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{g()},className:dom.getClassName("point-cloud","next")}),React__default.default.createElement(index$1.FooterDivider,null),React__default.default.createElement(index$2.ZoomController,{initialPosition:p,zoomIn:n,zoomOut:c,zoom:o}))},ZAxisSlider=({setZAxisLimit:e,zAxisLimit:o,checkMode:n})=>n?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:o,onAfterChange:c=>{e(c)}})),PointCloudTopView=({currentData:e,imgList:o,stepInfo:n,drawLayerSlot:c,checkMode:p})=>{const[g,f]=React.useState({zoom:1,currentPos:{x:0,y:0}}),u=React.useRef(null),t=React__default.default.useContext(PointCloudContext.PointCloudContext),s=useSize(u),v=index.jsonParser(n.config),{setZoom:w}=useZoom.useZoom(),{addPolygon:_,deletePolygon:b}=usePolygon.usePolygon(),{deletePointCloudBox:E,changeValidByID:q}=useSingleBox.useSingleBox(),[x,j]=React.useState(10),{t:S}=reactI18next.useTranslation(),P=usePointCloudViews.usePointCloudViews();return React.useLayoutEffect(()=>{if(!t.topViewInstance&&u.current&&(e==null?void 0:e.url)&&(e==null?void 0:e.result)){const l={width:u.current.clientWidth,height:u.current.clientHeight},d=new lbAnnotation.PointCloudAnnotation({container:u.current,size:l,pcdPath:e.url,config:v,checkMode:p});t.setTopViewInstance(d)}},[e]),React.useEffect(()=>{if(!s||!t.topViewInstance||!t.sideViewInstance)return;const{pointCloud2dOperation:l}=t.topViewInstance;l.singleOn("polygonCreated",(i,a)=>{if(l.pattern===EPolygonPattern.Normal||!(e==null?void 0:e.url)){const m=__spreadProps(__spreadValues({},i),{pointList:i.pointList.map(r=>lbUtils.PointCloudUtils.transferCanvas2World(r,s))});_(m),t.setSelectedIDs(i.id);return}P.topViewAddBox({newPolygon:i,size:s,imgList:o,trackConfigurable:v.trackConfigurable,zoom:a})}),l.singleOn("deletedObject",({id:i})=>{E(i),b(i)}),l.singleOn("deleteSelectedIDs",()=>{t.setSelectedIDs([])}),l.singleOn("addSelectedIDs",i=>{t.addSelectedID(i)}),l.singleOn("setSelectedIDs",i=>{t.setSelectedIDs(i)}),l.singleOn("updatePolygonByDrag",({newPolygon:i})=>{var a;(a=P.topViewUpdateBox)==null||a.call(P,i,s)});const d=i=>{var a;const m=q(i);m&&t.syncAllViewPointCloudColor(m),t.polygonList.find(r=>r.id===i)&&((a=t.topViewInstance)==null||a.pointCloud2dOperation.setPolygonValidAndRender(i,!0))};return l.on("validUpdate",d),()=>{l.unbind("validUpdate",d)}},[t,s,e,P,t.polygonList]),React.useEffect(()=>{var l,d;if(!(s==null?void 0:s.width)||!t.topViewInstance)return;const i=(d=(l=v==null?void 0:v.attributeList)==null?void 0:l[0])==null?void 0:d.value;i&&t.topViewInstance.pointCloud2dOperation.setDefaultAttribute(i),t.topViewInstance.initSize(s),t.topViewInstance.updatePolygonList(t.pointCloudBoxList,t.polygonList);const{topViewInstance:{pointCloudInstance:a,pointCloud2dOperation:m}}=t;m.singleOn("renderZoom",(r,C)=>{const{offsetX:y,offsetY:V}=TransferCanvas2WorldOffset(C,s,r);if(a.camera.zoom=r,C){const{x:I,y:O,z:h}=a.initCameraPosition;a.camera.position.set(I+V,O-y,h)}a.camera.updateProjectionMatrix(),a.render(),w(r),f({zoom:r,currentPos:C})}),m.singleOn("dragMove",({currentPos:r,zoom:C})=>{const{offsetX:y,offsetY:V}=TransferCanvas2WorldOffset(r,s,C);a.camera.zoom=C;const{x:I,y:O,z:h}=a.initCameraPosition;a.camera.position.set(I+V,O-y,h),a.render(),f({zoom:C,currentPos:r})})},[s,t.topViewInstance]),React.useEffect(()=>{var l,d;(d=(l=t.topViewInstance)==null?void 0:l.pointCloudInstance)==null||d.applyZAxisPoints(x)},[x]),React.useEffect(()=>{P.topViewSelectedChanged()},[t.selectedIDs]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:S("TopView"),toolbar:React__default.default.createElement(TopViewToolbar,{currentData:e})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:u},c==null?void 0:c(g)),React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:p,config:v}),React__default.default.createElement(ZAxisSlider,{checkMode:p,zAxisLimit:x,setZAxisLimit:j}),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 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js");const useAttribute=()=>{var o,n;const{topViewInstance:t,sideViewInstance:u,backViewInstance:i,mainViewInstance:r}=React.useContext(PointCloudContext.PointCloudContext),[d,a]=React.useState((n=(o=t==null?void 0:t.pointCloud2dOperation)==null?void 0:o.defaultAttribute)!=null?n:"");return React.useEffect(()=>{if(!(t==null?void 0:t.pointCloud2dOperation))return;const e=()=>{a(t==null?void 0:t.pointCloud2dOperation.defaultAttribute)};return t==null||t.pointCloud2dOperation.on("changeAttributeSidebar",e),()=>{t==null||t.pointCloud2dOperation.unbind("changeAttributeSidebar",e)}},[t==null?void 0:t.pointCloud2dOperation]),{syncThreeViewsAttribute:e=>{[t==null?void 0:t.pointCloud2dOperation,u==null?void 0:u.pointCloud2dOperation,i==null?void 0:i.pointCloud2dOperation].forEach(l=>{l==null||l.setDefaultAttribute(e)})},updateDefaultAttribute:e=>{t==null||t.pointCloud2dOperation.setDefaultAttribute(e)},reRenderPointCloud3DBox:e=>{r==null||r.generateBox(e)},defaultAttribute:d}};exports.useAttribute=useAttribute;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js");const useAttribute=()=>{const{topViewInstance:t,sideViewInstance:o,backViewInstance:n,mainViewInstance:u,defaultAttribute:r,setDefaultAttribute:d}=React.useContext(PointCloudContext.PointCloudContext);return React.useEffect(()=>{if(!(t==null?void 0:t.pointCloud2dOperation))return;const e=()=>{d(t==null?void 0:t.pointCloud2dOperation.defaultAttribute)};return t==null||t.pointCloud2dOperation.on("changeAttributeSidebar",e),()=>{t==null||t.pointCloud2dOperation.unbind("changeAttributeSidebar",e)}},[t==null?void 0:t.pointCloud2dOperation]),{syncThreeViewsAttribute:e=>{[t==null?void 0:t.pointCloud2dOperation,o==null?void 0:o.pointCloud2dOperation,n==null?void 0:n.pointCloud2dOperation].forEach(i=>{i==null||i.setDefaultAttribute(e)})},updateDefaultAttribute:e=>{t==null||t.pointCloud2dOperation.setDefaultAttribute(e)},reRenderPointCloud3DBox:e=>{u==null||u.generateBox(e)},defaultAttribute:r}};exports.useAttribute=useAttribute;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var PointCloudContext=require("../PointCloudContext.js"),React=require("react");const useConfig=()=>{const{topViewInstance:n,sideViewInstance:r,backViewInstance:s,mainViewInstance:t}=React.useContext(PointCloudContext.PointCloudContext);return{syncAllViewsConfig:o=>{[n,r,s].forEach(e=>{e==null||e.updateConfig(o)}),t==null||t.setConfig(o)},reRenderTopViewRange:o=>{var e,i,l;(i=(e=n==null?void 0:n.pointCloudInstance)==null?void 0:e.generateRange)==null||i.call(e,o),(l=n==null?void 0:n.pointCloudInstance)==null||l.render()}}};exports.useConfig=useConfig;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var PointCloudContext=require("../PointCloudContext.js"),React=require("react");const useConfig=()=>{const{topViewInstance:n,sideViewInstance:r,backViewInstance:a,mainViewInstance:i}=React.useContext(PointCloudContext.PointCloudContext);return{syncAllViewsConfig:t=>{[n,r,a].forEach(e=>{var o,l;e==null||e.updateConfig(t);const u=(l=(o=t==null?void 0:t.attributeList)==null?void 0:o[0])==null?void 0:l.value;u&&(e==null||e.pointCloud2dOperation.setDefaultAttribute(u))}),i==null||i.setConfig(t)},reRenderTopViewRange:t=>{var e,o,l;(o=(e=n==null?void 0:n.pointCloudInstance)==null?void 0:e.generateRange)==null||o.call(e,t),(l=n==null?void 0:n.pointCloudInstance)==null||l.render()}}};exports.useConfig=useConfig;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,i,r)=>i in e?__defProp(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r,__spreadValues=(e,i)=>{for(var r in i||(i={}))__hasOwnProp.call(i,r)&&__defNormalProp(e,r,i[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(i))__propIsEnum.call(i,r)&&__defNormalProp(e,r,i[r]);return e};const useHistory=()=>{const{history:e,setPointCloudResult:i,setSelectedIDs:r,pointCloudBoxList:s,mainViewInstance:u,topViewInstance:y,polygonList:d,setPolygonList:a,syncAllViewPointCloudColor:L}=React.useContext(PointCloudContext.PointCloudContext),C=({newBoxParams:t,newPolygon:o})=>{const n={pointCloudBoxList:s,polygonList:d};t&&(n.pointCloudBoxList=s.concat(t)),o&&(n.polygonList=d.concat(o)),e.pushHistory(n)},P=t=>{const o={pointCloudBoxList:s,polygonList:d};t.pointCloudBoxList&&(o.pointCloudBoxList=t.pointCloudBoxList),t.polygonList&&(o.polygonList=t.polygonList),e.pushHistory(o)},g=t=>{if(d.find(n=>n.id===t.id)){const n=d.map(c=>c.id===t.id?t:__spreadValues({},c));e.pushHistory({pointCloudBoxList:s,polygonList:n}),a(n)}},h=({pointCloudBoxList:t,polygonList:o})=>{e.initRecord([{pointCloudBoxList:t,polygonList:o}],!0)},f=t=>{if(!t)return;const{pointCloudBoxList:o=[],polygonList:n=[]}=t;if(o){s.length!==o.length&&r();const c=s.filter(l=>o.every(p=>p.id!==l.id)),v=o.filter(l=>s.every(p=>p.id!==l.id));c.forEach(l=>{u==null||u.removeObjectByName(l.id)}),v.forEach(l=>{u==null||u.generateBox(l)}),i(o),L(o)}n&&a(n),y==null||y.updatePolygonList(o!=null?o:[],n!=null?n:[])};return{addHistory:C,pushHistoryWithList:P,initHistory:h,pushHistoryUnderUpdatePolygon:g,redo:()=>{f(e.redo())},undo:()=>{f(e.undo())}}};exports.useHistory=useHistory;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,i,r)=>i in e?__defProp(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r,__spreadValues=(e,i)=>{for(var r in i||(i={}))__hasOwnProp.call(i,r)&&__defNormalProp(e,r,i[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(i))__propIsEnum.call(i,r)&&__defNormalProp(e,r,i[r]);return e};const useHistory=()=>{const{history:e,setPointCloudResult:i,setSelectedIDs:r,pointCloudBoxList:s,mainViewInstance:u,topViewInstance:y,polygonList:d,setPolygonList:a,syncAllViewPointCloudColor:L}=React.useContext(PointCloudContext.PointCloudContext),C=({newBoxParams:t,newPolygon:o})=>{const n={pointCloudBoxList:s,polygonList:d};t&&(n.pointCloudBoxList=s.concat(t)),o&&(n.polygonList=d.concat(o)),e.pushHistory(n)},P=t=>{const o={pointCloudBoxList:s,polygonList:d};t.pointCloudBoxList&&(o.pointCloudBoxList=t.pointCloudBoxList),t.polygonList&&(o.polygonList=t.polygonList),e.pushHistory(o)},g=t=>{if(d.find(n=>n.id===t.id)){const n=d.map(c=>c.id===t.id?t:__spreadValues({},c));e.pushHistory({pointCloudBoxList:s,polygonList:n}),a(n)}},h=({pointCloudBoxList:t,polygonList:o})=>{e.initRecord({pointCloudBoxList:t,polygonList:o},!0)},f=t=>{if(!t)return;const{pointCloudBoxList:o=[],polygonList:n=[]}=t;if(o){s.length!==o.length&&r();const c=s.filter(l=>o.every(p=>p.id!==l.id)),v=o.filter(l=>s.every(p=>p.id!==l.id));c.forEach(l=>{u==null||u.removeObjectByName(l.id)}),v.forEach(l=>{u==null||u.generateBox(l)}),i(o),L(o)}n&&a(n),y==null||y.updatePolygonList(o!=null?o:[],n!=null?n:[])};return{addHistory:C,pushHistoryWithList:P,initHistory:h,pushHistoryUnderUpdatePolygon:g,redo:()=>{f(e.redo())},undo:()=>{f(e.undo())}}};exports.useHistory=useHistory;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),_=require("lodash"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation"),useHistory=require("./useHistory.js"),usePolygon=require("./usePolygon.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,n,t)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,__spreadValues=(e,n)=>{for(var t in n||(n={}))__hasOwnProp.call(n,t)&&__defNormalProp(e,t,n[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(n))__propIsEnum.call(n,t)&&__defNormalProp(e,t,n[t]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const{ESortDirection}=lbAnnotation.cAnnotation,useSingleBox=()=>{const{pointCloudBoxList:e,setPointCloudResult:n,topViewInstance:t,backViewInstance:c,sideViewInstance:p,selectedIDs:y,selectedID:f,mainViewInstance:a,setSelectedIDs:C,syncAllViewPointCloudColor:P,polygonList:g}=React.useContext(PointCloudContext.PointCloudContext),{selectedPolygon:d,updateSelectedPolygon:b,updatePolygonValidByID:w}=usePolygon.usePolygon(),{pushHistoryWithList:B}=useHistory.useHistory(),r=React.useMemo(()=>{const o=e.findIndex(l=>l.id===f);if(o>-1)return{info:e[o],index:o}},[f,e]),v=React.useCallback(o=>{if(r==null?void 0:r.info){e.splice(r.index,1,___default.default.merge(r.info,o));const l=___default.default.cloneDeep(e);return n(l),B({pointCloudBoxList:l}),l}return e},[f,e]),O=React.useCallback((o,l)=>{const i=e.findIndex(s=>s.id===l);if(i>-1){e.splice(i,1,___default.default.merge(e[i],o));const s=___default.default.cloneDeep(e);return n(s),s}return e},[e]),u=React.useCallback(o=>{t==null||t.pointCloud2dOperation.setPolygonValidAndRender(o,!0),p==null||p.pointCloud2dOperation.setPolygonValidAndRender(o,!0),c==null||c.pointCloud2dOperation.setPolygonValidAndRender(o,!0)},[t,p,c]),I=React.useCallback(()=>{if(r==null?void 0:r.info){const{id:o,valid:l=!0}=r.info,i=v({valid:!l});P(i),u(o)}d&&(b(__spreadProps(__spreadValues({},d),{valid:!d.valid})),t==null||t.pointCloud2dOperation.setPolygonValidAndRender(d.id,!0))},[u,r,d]),V=React.useCallback(o=>{const l=e.find(i=>i.id===o);if(l){const{id:i,valid:s=!0}=l,D=O({valid:!s},i);return u(i),D}w(o)},[u,e,g]),x=React.useCallback((o=ESortDirection.ascend)=>{if(!t||y.length>1)return;const{pointCloud2dOperation:l}=t,i=l.switchToNextPolygon(o);i&&C(i)},[t]);return{selectedBox:r,updateSelectedBox:v,changeSelectedBoxValid:I,changeValidByID:V,selectNextBox:x,selectPrevBox:()=>{x(ESortDirection.descend)},deletePointCloudBox:o=>{const l=e.filter(i=>i.id!==o);n(l),a==null||a.removeObjectByName(o),a==null||a.render(),P(l)}}};exports.useSingleBox=useSingleBox;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),_=require("lodash"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation"),useHistory=require("./useHistory.js"),usePolygon=require("./usePolygon.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,n,o)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,__spreadValues=(e,n)=>{for(var o in n||(n={}))__hasOwnProp.call(n,o)&&__defNormalProp(e,o,n[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(n))__propIsEnum.call(n,o)&&__defNormalProp(e,o,n[o]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const{ESortDirection}=lbAnnotation.cAnnotation,useSingleBox=()=>{const{pointCloudBoxList:e,setPointCloudResult:n,topViewInstance:o,backViewInstance:c,sideViewInstance:p,selectedIDs:C,selectedID:f,mainViewInstance:u,setSelectedIDs:g,syncAllViewPointCloudColor:P,polygonList:b}=React.useContext(PointCloudContext.PointCloudContext),{selectedPolygon:d,updateSelectedPolygon:w,updatePolygonValidByID:B,deletePolygon:O}=usePolygon.usePolygon(),{pushHistoryWithList:I}=useHistory.useHistory(),r=React.useMemo(()=>{const t=e.findIndex(l=>l.id===f);if(t>-1)return{info:e[t],index:t}},[f,e]),y=React.useCallback(t=>{if(r==null?void 0:r.info){e.splice(r.index,1,___default.default.merge(r.info,t));const l=___default.default.cloneDeep(e);return n(l),I({pointCloudBoxList:l}),l}return e},[f,e]),V=React.useCallback((t,l)=>{const i=e.findIndex(s=>s.id===l);if(i>-1){e.splice(i,1,___default.default.merge(e[i],t));const s=___default.default.cloneDeep(e);return n(s),s}return e},[e]),a=React.useCallback(t=>{o==null||o.pointCloud2dOperation.setPolygonValidAndRender(t,!0),p==null||p.pointCloud2dOperation.setPolygonValidAndRender(t,!0),c==null||c.pointCloud2dOperation.setPolygonValidAndRender(t,!0)},[o,p,c]),D=React.useCallback(()=>{if(r==null?void 0:r.info){const{id:t,valid:l=!0}=r.info,i=y({valid:!l});P(i),a(t)}d&&(w(__spreadProps(__spreadValues({},d),{valid:!d.valid})),o==null||o.pointCloud2dOperation.setPolygonValidAndRender(d.id,!0))},[a,r,d]),m=React.useCallback(t=>{const l=e.find(i=>i.id===t);if(l){const{id:i,valid:s=!0}=l,h=V({valid:!s},i);return a(i),h}B(t)},[a,e,b]),v=React.useCallback((t=ESortDirection.ascend)=>{if(!o||C.length>1)return;const{pointCloud2dOperation:l}=o,i=l.switchToNextPolygon(t);i&&g(i)},[o]),S=()=>{v(ESortDirection.descend)},x=t=>{const l=e.filter(i=>i.id!==t);n(l),u==null||u.removeObjectByName(t),u==null||u.render(),P(l)};return{selectedBox:r,updateSelectedBox:y,changeSelectedBoxValid:D,changeValidByID:m,selectNextBox:v,selectPrevBox:S,deletePointCloudBox:x,deleteSelectedPointCloudBoxAndPolygon:()=>{r&&(x(r.info.id),o==null||o.pointCloud2dOperation.deletePolygon(r.info.id)),d&&(O(d.id),o==null||o.pointCloud2dOperation.deletePolygon(d.id))}}};exports.useSingleBox=useSingleBox;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation"),useHistory=require("./useHistory.js");const{EToolName,EPolygonPattern}=lbAnnotation.cTool,useStatus=()=>{const{topViewInstance:t,mainViewInstance:e,pointCloudBoxList:r,setPointCloudResult:s,setPolygonList:i}=React.useContext(PointCloudContext.PointCloudContext),[u,l]=React.useState(EToolName.Rect),{pushHistoryWithList:a}=useHistory.useHistory();return{clearAllResult:()=>{r.forEach(n=>{e==null||e.removeObjectByName(n.id)}),e==null||e.render(),s([]),i([]),t==null||t.pointCloud2dOperation.clearActiveStatus(),t==null||t.pointCloud2dOperation.clearResult(),a({pointCloudBoxList:[],polygonList:[]})},updatePointCloudPattern:n=>{const o=t==null?void 0:t.pointCloud2dOperation;if(!!o)switch(o.clearActiveStatus(),n){case EToolName.Rect:o.setPattern(EPolygonPattern.Rect),l(EToolName.Rect);break;case EToolName.Polygon:o.setPattern(EPolygonPattern.Normal),l(EToolName.Polygon);break}},pointCloudPattern:u}};exports.useStatus=useStatus;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation"),useHistory=require("./useHistory.js");const{EToolName,EPolygonPattern}=lbAnnotation.cTool,useStatus=()=>{const{topViewInstance:t,mainViewInstance:e,pointCloudBoxList:r,setPointCloudResult:i,setPolygonList:s,pointCloudPattern:u,setPointCloudPattern:l,syncAllViewPointCloudColor:a}=React.useContext(PointCloudContext.PointCloudContext),{pushHistoryWithList:c}=useHistory.useHistory();return{clearAllResult:()=>{r.forEach(n=>{e==null||e.removeObjectByName(n.id)}),e==null||e.render(),i([]),s([]),t==null||t.pointCloud2dOperation.clearActiveStatus(),t==null||t.pointCloud2dOperation.clearResult(),a([]),c({pointCloudBoxList:[],polygonList:[]})},updatePointCloudPattern:n=>{const o=t==null?void 0:t.pointCloud2dOperation;if(!!o)switch(o.clearActiveStatus(),n){case EToolName.Rect:o.setPattern(EPolygonPattern.Rect),l(EToolName.Rect);break;case EToolName.Polygon:o.setPattern(EPolygonPattern.Normal),l(EToolName.Polygon);break}},pointCloudPattern:u}};exports.useStatus=useStatus;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var StepUtils=require("../../utils/StepUtils.js"),index=require("../../utils/index.js");const a2MapStateToProps=t=>{var n,o,r;const{annotation:{imgList:i,imgIndex:s}}=t,a=(n=i[s])!=null?n:{},e=StepUtils.getCurrentStepInfo((o=t.annotation)==null?void 0:o.step,(r=t.annotation)==null?void 0:r.stepList);return{currentData:a,imgList:i,stepInfo:e,config:index.jsonParser(e==null?void 0:e.config)}};exports.a2MapStateToProps=a2MapStateToProps;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var StepUtils=require("../../utils/StepUtils.js"),index=require("../../utils/index.js");const a2MapStateToProps=n=>{var e,o,i;const{annotation:{imgList:r,imgIndex:s}}=n,a=(e=r[s])!=null?e:{},t=StepUtils.getCurrentStepInfo((o=n.annotation)==null?void 0:o.step,(i=n.annotation)==null?void 0:i.stepList);return{currentData:a,imgList:r,stepInfo:t,config:index.jsonParser(t==null?void 0:t.config),configString:t==null?void 0:t.config}};exports.a2MapStateToProps=a2MapStateToProps;
@@ -1,3 +1,3 @@
1
1
  import { IA2MapStateProps } from '@/store/annotation/map';
2
- declare const _default: import("react-redux").ConnectedComponent<({ currentData, config }: IA2MapStateProps) => JSX.Element, import("react-redux").Omit<IA2MapStateProps, "imgList" | "config" | "currentData" | "stepInfo">>;
2
+ declare const _default: import("react-redux").ConnectedComponent<({ currentData, config }: IA2MapStateProps) => JSX.Element, import("react-redux").Omit<IA2MapStateProps, "imgList" | "config" | "currentData" | "stepInfo" | "configString">>;
3
3
  export default _default;
@@ -2,5 +2,5 @@ import React from 'react';
2
2
  import { IA2MapStateProps } from '@/store/annotation/map';
3
3
  declare const _default: import("react-redux").ConnectedComponent<React.FC<IA2MapStateProps>, import("react-redux").Omit<IA2MapStateProps & {
4
4
  children?: React.ReactNode;
5
- }, "imgList" | "config" | "currentData" | "stepInfo">>;
5
+ }, "imgList" | "config" | "currentData" | "stepInfo" | "configString">>;
6
6
  export default _default;
@@ -2,5 +2,5 @@ import { IA2MapStateProps } from '@/store/annotation/map';
2
2
  interface IProps {
3
3
  checkMode?: boolean;
4
4
  }
5
- declare const _default: import("react-redux").ConnectedComponent<({ currentData, config, checkMode }: IA2MapStateProps & IProps) => JSX.Element, import("react-redux").Omit<IA2MapStateProps & IProps, "imgList" | "config" | "currentData" | "stepInfo">>;
5
+ declare const _default: import("react-redux").ConnectedComponent<({ currentData, config, checkMode }: IA2MapStateProps & IProps) => JSX.Element, import("react-redux").Omit<IA2MapStateProps & IProps, "imgList" | "config" | "currentData" | "stepInfo" | "configString">>;
6
6
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import { IPointCloudBox, IPointCloudBoxList, IPolygonData } from '@labelbee/lb-utils';
2
- import { PointCloud, PointCloudAnnotation, ActionsHistory } from '@labelbee/lb-annotation';
2
+ import { PointCloud, PointCloudAnnotation, ActionsHistory, EToolName } from '@labelbee/lb-annotation';
3
3
  import React from 'react';
4
4
  interface IPointCloudContextInstances {
5
5
  topViewInstance?: PointCloudAnnotation;
@@ -29,6 +29,10 @@ export interface IPointCloudContext extends IPointCloudContextInstances {
29
29
  setZoom: (zoom: number) => void;
30
30
  history: ActionsHistory;
31
31
  syncAllViewPointCloudColor: (newPointCloudList?: IPointCloudBox[]) => void;
32
+ defaultAttribute: string;
33
+ setDefaultAttribute: (defaultAttribute: string) => void;
34
+ pointCloudPattern: EToolName.Rect | EToolName.Polygon;
35
+ setPointCloudPattern: (toolName: EToolName.Rect | EToolName.Polygon) => void;
32
36
  }
33
37
  export declare const PointCloudContext: React.Context<IPointCloudContext>;
34
38
  export declare const PointCloudProvider: React.FC<{}>;
@@ -5,5 +5,5 @@ interface IProps extends IA2MapStateProps {
5
5
  }
6
6
  declare const _default: import("react-redux").ConnectedComponent<React.FC<IProps>, import("react-redux").Omit<IProps & {
7
7
  children?: React.ReactNode;
8
- }, "imgList" | "config" | "currentData" | "stepInfo">>;
8
+ }, "imgList" | "config" | "currentData" | "stepInfo" | "configString">>;
9
9
  export default _default;
@@ -5,5 +5,5 @@ interface IProps {
5
5
  }
6
6
  declare const _default: import("react-redux").ConnectedComponent<React.FC<IA2MapStateProps & IProps>, import("react-redux").Omit<IA2MapStateProps & IProps & {
7
7
  children?: React.ReactNode;
8
- }, "imgList" | "config" | "currentData" | "stepInfo">>;
8
+ }, "imgList" | "config" | "currentData" | "stepInfo" | "configString">>;
9
9
  export default _default;
@@ -7,5 +7,5 @@ interface IProps extends IA2MapStateProps {
7
7
  }
8
8
  declare const _default: import("react-redux").ConnectedComponent<React.FC<IProps>, import("react-redux").Omit<IProps & {
9
9
  children?: React.ReactNode;
10
- }, "imgList" | "config" | "currentData" | "stepInfo">>;
10
+ }, "imgList" | "config" | "currentData" | "stepInfo" | "configString">>;
11
11
  export default _default;
@@ -11,4 +11,5 @@ export declare const useSingleBox: () => {
11
11
  selectNextBox: (sort?: any) => void;
12
12
  selectPrevBox: () => void;
13
13
  deletePointCloudBox: (id: string) => void;
14
+ deleteSelectedPointCloudBoxAndPolygon: () => void;
14
15
  };
@@ -7,5 +7,5 @@ import { cTool } from '@labelbee/lb-annotation';
7
7
  export declare const useStatus: () => {
8
8
  clearAllResult: () => void;
9
9
  updatePointCloudPattern: (toolName: any) => void;
10
- pointCloudPattern: cTool.EToolName;
10
+ pointCloudPattern: cTool.EToolName.Rect | cTool.EToolName.Polygon;
11
11
  };
@@ -16,10 +16,12 @@ export interface IA2MapStateProps extends IAnnotationStateProps {
16
16
  imgList: IFileItem[];
17
17
  stepInfo: IStepInfo;
18
18
  config: any;
19
+ configString: string;
19
20
  }
20
21
  export declare const a2MapStateToProps: (state: AppState) => {
21
22
  currentData: any;
22
23
  imgList: any;
23
24
  stepInfo: IStepInfo;
24
25
  config: any;
26
+ configString: string;
25
27
  };
@@ -1,3 +1,5 @@
1
1
  import { IShortcut } from '@/types/tool';
2
2
  declare const pointCloudShortCutTable: IShortcut[];
3
+ declare const pointCloudShortCutTable_POLYGON: IShortcut[];
3
4
  export default pointCloudShortCutTable;
5
+ export { pointCloudShortCutTable_POLYGON };
@@ -1 +1 @@
1
- "use strict";var React=require("react"),icons=require("@ant-design/icons"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js"),index$1=require("./components/batchUpdateModal/index.js"),lbUtils=require("@labelbee/lb-utils"),index$2=require("../../../../components/attributeList/index.js"),useAttribute=require("../../../../components/pointCloudView/hooks/useAttribute.js");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React);const AnnotatedBox=({imgList:l,imgIndex:r})=>{const u=React.useContext(PointCloudContext.PointCloudContext),[o,c]=React.useState([]),{t:i}=reactI18next.useTranslation();React.useEffect(()=>{const n=l;let e=new Map;c(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:n,extraBoxList:p,ignoreIndexList:[r]}).filter(a=>!a.trackID||e.get(a.trackID)?!1:(e.set(a.trackID,!0),!0)).sort((a,s)=>{var d,f;const v=(d=a==null?void 0:a.trackID)!=null?d:0,g=(f=s==null?void 0:s.trackID)!=null?f:0;return v-g}).map(a=>{var s;return(s=a==null?void 0:a.trackID)!=null?s:0}))},[u.pointCloudBoxList,l]);const{pointCloudBoxList:p}=u;return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:16}},i("AllTrackIDs")),React__default.default.createElement("div",null,o.map(n=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:n,style:{color:"#666",marginBottom:8}},n))))},BoxTrackIDInput=()=>{const[l,r]=React.useState(!1),{pointCloudBoxList:u}=React.useContext(PointCloudContext.PointCloudContext),{selectedBox:o,updateSelectedBox:c}=useSingleBox.useSingleBox(),[i,p]=React.useState(""),{t:n}=reactI18next.useTranslation(),e=o==null?void 0:o.info.trackID,a=d=>!!u.find(v=>v.trackID===d&&v.id!==(o==null?void 0:o.info.id)),s=(d=!1)=>{const f=parseInt(i,10);if(d&&r(!1),isNaN(f)){antd.message.error(n("PositiveIntegerCheck"));return}if(i.indexOf(".")>-1){antd.message.error(n("NotAllowDecimalPointsInTrackID"));return}if(a(f)){antd.message.error(n("DuplicateTrackIDsExist"));return}if(!(f>0)){antd.message.error(n("PositiveIntegerCheck"));return}c({trackID:f})};return React.useEffect(()=>{r(!1)},[e]),React__default.default.createElement("div",{style:{padding:24}},React__default.default.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,n("CurrentBoxTrackIDs")),e&&React__default.default.createElement(index$1,{id:e})),React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},l&&e?React__default.default.createElement(antd.Input,{defaultValue:e,onChange:d=>{p(d.target.value)},disabled:!e,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):React__default.default.createElement("span",null,e),React__default.default.createElement(icons.EditFilled,{style:{color:"#999",marginLeft:16,cursor:typeof e!="undefined"?"pointer":"not-allowed"},onClick:()=>{e&&r(!l)}})))},AttributeUpdater=({attributeList:l,subAttributeList:r,toolInstance:u})=>{var o,c,i;const{selectedBox:p}=useSingleBox.useSingleBox(),n=React.useContext(PointCloudContext.PointCloudContext),{t:e}=reactI18next.useTranslation(),{defaultAttribute:a}=useAttribute.useAttribute(),s={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},d={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},f=t=>{u.setDefaultAttribute(t)},v=(t,x)=>{u.setSubAttribute(t,x)},g=l.map(t=>({label:t.key,value:t.value,color:t==null?void 0:t.color}));return React__default.default.createElement("div",null,React__default.default.createElement("div",{style:s},e("Attribute")),React__default.default.createElement(index$2.default,{list:g,forbidDefault:!0,selectedAttribute:(i=(c=(o=n.selectedPointCloudBox)==null?void 0:o.attribute)!=null?c:a)!=null?i:"",attributeChanged:t=>f(t)}),React__default.default.createElement(antd.Divider,{style:{margin:0}}),p&&React__default.default.createElement(React__default.default.Fragment,null,r.map(t=>{var x,C,I,b,E;return(t==null?void 0:t.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12},key:t.value},React__default.default.createElement("div",{style:d},e("SubAttribute"),"-",t.key),((x=t.subSelected)==null?void 0:x.length)<5?React__default.default.createElement(index$2.default,{list:t.subSelected.map(m=>({label:m.key,value:m.value})),selectedAttribute:(I=(C=n.selectedPointCloudBox)==null?void 0:C.subAttribute)==null?void 0:I[t.value],num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:m=>v(t.value,m),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(E=(b=n.selectedPointCloudBox)==null?void 0:b.subAttribute)==null?void 0:E[t.value],placeholder:e("PleaseSelect"),onChange:m=>v(t.value,m),allowClear:!0},t.subSelected.map(m=>React__default.default.createElement(antd.Select.Option,{key:m.value,value:m.value},m.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))})))},PointCloudToolSidebar=({stepInfo:l,toolInstance:r,imgList:u,imgIndex:o})=>{var c,i;const{updatePointCloudPattern:p,pointCloudPattern:n}=useStatus.useStatus(),e=index.jsonParser(l.config),a=(c=e==null?void 0:e.attributeList)!=null?c:[],s=(e==null?void 0:e.secondaryAttributeConfigurable)===!0?(i=e==null?void 0:e.inputList)!=null?i:[]:[];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:n,onChange:d=>p==null?void 0:p(d)}),(e==null?void 0:e.trackConfigurable)===!0&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(AnnotatedBox,{imgList:u,imgIndex:o}),React__default.default.createElement(BoxTrackIDInput,null),React__default.default.createElement(antd.Divider,{style:{margin:0}})),React__default.default.createElement(AttributeUpdater,{toolInstance:r,attributeList:a,subAttributeList:s}))},mapStateToProps=l=>{var r,u,o;const c=StepUtils.getCurrentStepInfo((r=l.annotation)==null?void 0:r.step,(u=l.annotation)==null?void 0:u.stepList),i=(o=l.annotation)==null?void 0:o.toolInstance;return{stepInfo:c,toolInstance:i,imgList:l.annotation.imgList,imgIndex:l.annotation.imgIndex}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudToolSidebar);module.exports=PointCloudToolSidebar$1;
1
+ "use strict";var React=require("react"),icons=require("@ant-design/icons"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js"),index$1=require("./components/batchUpdateModal/index.js"),lbUtils=require("@labelbee/lb-utils"),index$2=require("../../../../components/attributeList/index.js"),useAttribute=require("../../../../components/pointCloudView/hooks/useAttribute.js");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React);const AnnotatedBox=({imgList:l,imgIndex:i})=>{const s=React.useContext(PointCloudContext.PointCloudContext),[o,c]=React.useState([]),{t:r}=reactI18next.useTranslation();React.useEffect(()=>{const a=l;let t=new Map;c(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:a,extraBoxList:m,ignoreIndexList:[i]}).filter(n=>!n.trackID||t.get(n.trackID)?!1:(t.set(n.trackID,!0),!0)).sort((n,u)=>{var d,e;const p=(d=n==null?void 0:n.trackID)!=null?d:0,v=(e=u==null?void 0:u.trackID)!=null?e:0;return p-v}).map(n=>{var u;return(u=n==null?void 0:n.trackID)!=null?u:0}))},[s.pointCloudBoxList,l]);const{pointCloudBoxList:m}=s;return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:16}},r("AllTrackIDs")),React__default.default.createElement("div",null,o.map(a=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:a,style:{color:"#666",marginBottom:8}},a))))},BoxTrackIDInput=()=>{const[l,i]=React.useState(!1),{pointCloudBoxList:s}=React.useContext(PointCloudContext.PointCloudContext),{selectedBox:o,updateSelectedBox:c}=useSingleBox.useSingleBox(),[r,m]=React.useState(""),{t:a}=reactI18next.useTranslation(),t=o==null?void 0:o.info.trackID,n=d=>!!s.find(p=>p.trackID===d&&p.id!==(o==null?void 0:o.info.id)),u=(d=!1)=>{const e=parseInt(r,10);if(d&&i(!1),isNaN(e)){antd.message.error(a("PositiveIntegerCheck"));return}if(r.indexOf(".")>-1){antd.message.error(a("NotAllowDecimalPointsInTrackID"));return}if(n(e)){antd.message.error(a("DuplicateTrackIDsExist"));return}if(!(e>0)){antd.message.error(a("PositiveIntegerCheck"));return}c({trackID:e})};return React.useEffect(()=>{i(!1)},[t]),React__default.default.createElement("div",{style:{padding:24}},React__default.default.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,a("CurrentBoxTrackIDs")),t&&React__default.default.createElement(index$1,{id:t})),React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},l&&t?React__default.default.createElement(antd.Input,{defaultValue:t,onChange:d=>{m(d.target.value)},disabled:!t,size:"small",onBlur:()=>{u()},onPressEnter:()=>{u(!0)}}):React__default.default.createElement("span",null,t),React__default.default.createElement(icons.EditFilled,{style:{color:"#999",marginLeft:16,cursor:typeof t!="undefined"?"pointer":"not-allowed"},onClick:()=>{t&&i(!l)}})))},AttributeUpdater=({attributeList:l,subAttributeList:i,toolInstance:s})=>{const{selectedBox:o}=useSingleBox.useSingleBox(),c=React.useContext(PointCloudContext.PointCloudContext),{t:r}=reactI18next.useTranslation(),{defaultAttribute:m}=useAttribute.useAttribute(),a={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},t={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},n=e=>{s.setDefaultAttribute(e)},u=(e,p)=>{s.setSubAttribute(e,p)},d=l.map(e=>({label:e.key,value:e.value,color:e==null?void 0:e.color}));return React__default.default.createElement("div",null,React__default.default.createElement("div",{style:a},r("Attribute")),React__default.default.createElement(index$2.default,{list:d,forbidDefault:!0,selectedAttribute:m!=null?m:"",attributeChanged:e=>n(e)}),React__default.default.createElement(antd.Divider,{style:{margin:0}}),o&&React__default.default.createElement(React__default.default.Fragment,null,i.map(e=>{var p,v,x,g,C;return(e==null?void 0:e.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12},key:e.value},React__default.default.createElement("div",{style:t},r("SubAttribute"),"-",e.key),((p=e.subSelected)==null?void 0:p.length)<5?React__default.default.createElement(index$2.default,{list:e.subSelected.map(f=>({label:f.key,value:f.value})),selectedAttribute:(x=(v=c.selectedPointCloudBox)==null?void 0:v.subAttribute)==null?void 0:x[e.value],num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:f=>u(e.value,f),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(C=(g=c.selectedPointCloudBox)==null?void 0:g.subAttribute)==null?void 0:C[e.value],placeholder:r("PleaseSelect"),onChange:f=>u(e.value,f),allowClear:!0},e.subSelected.map(f=>React__default.default.createElement(antd.Select.Option,{key:f.value,value:f.value},f.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))})))},PointCloudToolSidebar=({stepInfo:l,toolInstance:i,imgList:s,imgIndex:o})=>{var c,r;const{updatePointCloudPattern:m,pointCloudPattern:a}=useStatus.useStatus(),t=index.jsonParser(l.config),n=(c=t==null?void 0:t.attributeList)!=null?c:[],u=(t==null?void 0:t.secondaryAttributeConfigurable)===!0?(r=t==null?void 0:t.inputList)!=null?r:[]:[];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:a,onChange:d=>m==null?void 0:m(d)}),(t==null?void 0:t.trackConfigurable)===!0&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(AnnotatedBox,{imgList:s,imgIndex:o}),React__default.default.createElement(BoxTrackIDInput,null),React__default.default.createElement(antd.Divider,{style:{margin:0}})),React__default.default.createElement(AttributeUpdater,{toolInstance:i,attributeList:n,subAttributeList:u}))},mapStateToProps=l=>{var i,s,o;const c=StepUtils.getCurrentStepInfo((i=l.annotation)==null?void 0:i.step,(s=l.annotation)==null?void 0:s.stepList),r=(o=l.annotation)==null?void 0:o.toolInstance;return{stepInfo:c,toolInstance:r,imgList:l.annotation.imgList,imgIndex:l.annotation.imgIndex}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudToolSidebar);module.exports=PointCloudToolSidebar$1;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var es=require("antd/es"),React=require("react"),icon_kj1=require("../../../../../assets/annotation/toolHotKeyIcon/icon_kj1.svg.js"),icon_kj_h=require("../../../../../assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js"),ToolType=require("../../../../../data/enums/ToolType.js"),index=require("./rectToolShortCutTable/index.js"),index$2=require("./point/index.js"),index$3=require("./polygon/index.js"),index$4=require("./line/index.js"),index$1=require("./tag/index.js"),index$5=require("./text/index.js"),index$6=require("./videoTag/index.js"),index$7=require("./pointCloud/index.js"),index$8=require("./scribble/index.js"),index$9=require("../../index.js"),reactI18next=require("react-i18next"),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,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,a,t)=>a in e?__defProp(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,__spreadValues=(e,a)=>{for(var t in a||(a={}))__hasOwnProp.call(a,t)&&__defNormalProp(e,t,a[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(a))__propIsEnum.call(a,t)&&__defNormalProp(e,t,a[t]);return e};const{EVideoToolName,EPointCloudName}=lbAnnotation.cTool,shortCutTable={[ToolType.EToolName.Rect]:index.default,[ToolType.EToolName.Tag]:index$1.default,[ToolType.EToolName.Point]:index$2.default,[ToolType.EToolName.Polygon]:index$3.default,[ToolType.EToolName.Line]:index$4.default,[ToolType.EToolName.Text]:index$5,[EVideoToolName.VideoTagTool]:index$6,[EPointCloudName.PointCloud]:index$7,[ToolType.EToolName.ScribbleTool]:index$8},ToolHotKeyIcon=({icon:e})=>typeof e=="string"?React__default.default.createElement("img",{width:16,height:16,src:e}):e||null,ToolHotKeyCom=({title:e,style:a,shortCutList:t})=>{const[c,i]=React.useState(!1),{t:d}=reactI18next.useTranslation(),y={width:320,display:"flex",justifyContent:"space-between",margin:16},o={display:"block",padding:"0 3px",minWidth:"20px",marginRight:"3px",border:"1px solid rgba(204,204,204,1)",verticalAlign:"middle",fontSize:"12px",textAlign:"center"},m=(l,s)=>React__default.default.createElement("div",{style:y,key:s},React__default.default.createElement("span",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(ToolHotKeyIcon,{icon:l.icon}),React__default.default.createElement("span",{style:{marginLeft:l.icon?16:0}},d(l.name))),React__default.default.createElement("span",{style:{display:"flex",alignItems:"center"}},l.noticeInfo&&React__default.default.createElement("span",{style:{marginRight:"5px",color:"#CCCCCC"}},d(l.noticeInfo)),g(l.shortCut,l.shortCutUseHtml,l.linkSymbol))),g=(l,s=!1,E="+")=>{if(!l)return null;const x=l.map((r,n)=>{var p,f;const u={display:"flex",alignItems:"center"};return s?React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{style:o,dangerouslySetInnerHTML:{__html:r}})):n<l.length-1?typeof r=="number"?React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{style:o},r),React__default.default.createElement("span",{style:{marginRight:"3px"}},"~")):((p=r==null?void 0:r.startsWith)==null?void 0:p.call(r,"data"))?React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{className:"shortCutButton",style:{marginRight:"3px"}},React__default.default.createElement("img",{width:16,height:23,src:r})),React__default.default.createElement("span",{style:{marginRight:"3px"}},"+")):React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{style:o},r),React__default.default.createElement("span",{style:{marginRight:"3px"}},E)):typeof r=="number"?React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{style:o},r)):((f=r==null?void 0:r.startsWith)==null?void 0:f.call(r,"data"))?React__default.default.createElement("span",{className:"shortCutButton",key:n,style:{marginRight:"3px"}},React__default.default.createElement("img",{width:16,height:23,src:r})):React__default.default.createElement("span",{style:o,key:n},r)});return React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-around",alignItems:"center"}},x)},v=React__default.default.createElement("div",{className:`${index$9.footerCls}__hotkey-content`},t==null?void 0:t.map((l,s)=>m(l,s))),h=a||{width:100};return React__default.default.createElement(es.Popover,{placement:"topLeft",content:v,onMouseMove:()=>i(!0),onMouseLeave:()=>{i(!1)},overlayClassName:"tool-hotkeys-popover",className:"tipsBar"},React__default.default.createElement("div",{className:"shortCutTitle",onMouseMove:()=>i(!0),onMouseLeave:()=>i(!1),style:h},e!=null?e:React__default.default.createElement("a",{className:"svg"},React__default.default.createElement("img",{src:c?icon_kj_h:icon_kj1,width:15,height:13,style:{marginRight:"5px"}}),d("Hotkeys"))))},ToolHotKey=({style:e,title:a,toolName:t})=>{if(!t||!shortCutTable[t])return null;const c={style:e,title:a,shortCutList:shortCutTable[t]};return React__default.default.createElement(ToolHotKeyCom,__spreadValues({},c))};exports.ToolHotKeyCom=ToolHotKeyCom,exports.default=ToolHotKey,exports.shortCutTable=shortCutTable;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var es=require("antd/es"),React=require("react"),icon_kj1=require("../../../../../assets/annotation/toolHotKeyIcon/icon_kj1.svg.js"),icon_kj_h=require("../../../../../assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js"),ToolType=require("../../../../../data/enums/ToolType.js"),index=require("./rectToolShortCutTable/index.js"),index$2=require("./point/index.js"),index$3=require("./polygon/index.js"),index$4=require("./line/index.js"),index$1=require("./tag/index.js"),index$5=require("./text/index.js"),index$6=require("./videoTag/index.js"),index$7=require("./pointCloud/index.js"),index$8=require("./scribble/index.js"),index$9=require("../../index.js"),reactI18next=require("react-i18next"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../../components/pointCloudView/PointCloudContext.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,a,t)=>a in e?__defProp(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,__spreadValues=(e,a)=>{for(var t in a||(a={}))__hasOwnProp.call(a,t)&&__defNormalProp(e,t,a[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(a))__propIsEnum.call(a,t)&&__defNormalProp(e,t,a[t]);return e};const{EVideoToolName,EPointCloudName}=lbAnnotation.cTool,shortCutTable={[ToolType.EToolName.Rect]:index.default,[ToolType.EToolName.Tag]:index$1.default,[ToolType.EToolName.Point]:index$2.default,[ToolType.EToolName.Polygon]:index$3.default,[ToolType.EToolName.Line]:index$4.default,[ToolType.EToolName.Text]:index$5,[EVideoToolName.VideoTagTool]:index$6,[EPointCloudName.PointCloud]:index$7.default,[EPointCloudName.PointCloud+"_POLYGON"]:index$7.pointCloudShortCutTable_POLYGON,[ToolType.EToolName.ScribbleTool]:index$8},ToolHotKeyIcon=({icon:e})=>typeof e=="string"?React__default.default.createElement("img",{width:16,height:16,src:e}):e||null,ToolHotKeyCom=({title:e,style:a,shortCutList:t})=>{const[c,n]=React.useState(!1),{t:s}=reactI18next.useTranslation(),m={width:320,display:"flex",justifyContent:"space-between",margin:16},u={display:"block",padding:"0 3px",minWidth:"20px",marginRight:"3px",border:"1px solid rgba(204,204,204,1)",verticalAlign:"middle",fontSize:"12px",textAlign:"center"},y=(r,i)=>React__default.default.createElement("div",{style:m,key:i},React__default.default.createElement("span",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(ToolHotKeyIcon,{icon:r.icon}),React__default.default.createElement("span",{style:{marginLeft:r.icon?16:0}},s(r.name))),React__default.default.createElement("span",{style:{display:"flex",alignItems:"center"}},r.noticeInfo&&React__default.default.createElement("span",{style:{marginRight:"5px",color:"#CCCCCC"}},s(r.noticeInfo)),g(r.shortCut,r.shortCutUseHtml,r.linkSymbol))),g=(r,i=!1,x="+")=>{if(!r)return null;const E=r.map((l,o)=>{var p,f;const d={display:"flex",alignItems:"center"};return i?React__default.default.createElement("span",{key:o,style:d},React__default.default.createElement("span",{style:u,dangerouslySetInnerHTML:{__html:l}})):o<r.length-1?typeof l=="number"?React__default.default.createElement("span",{key:o,style:d},React__default.default.createElement("span",{style:u},l),React__default.default.createElement("span",{style:{marginRight:"3px"}},"~")):((p=l==null?void 0:l.startsWith)==null?void 0:p.call(l,"data"))?React__default.default.createElement("span",{key:o,style:d},React__default.default.createElement("span",{className:"shortCutButton",style:{marginRight:"3px"}},React__default.default.createElement("img",{width:16,height:23,src:l})),React__default.default.createElement("span",{style:{marginRight:"3px"}},"+")):React__default.default.createElement("span",{key:o,style:d},React__default.default.createElement("span",{style:u},l),React__default.default.createElement("span",{style:{marginRight:"3px"}},x)):typeof l=="number"?React__default.default.createElement("span",{key:o,style:d},React__default.default.createElement("span",{style:u},l)):((f=l==null?void 0:l.startsWith)==null?void 0:f.call(l,"data"))?React__default.default.createElement("span",{className:"shortCutButton",key:o,style:{marginRight:"3px"}},React__default.default.createElement("img",{width:16,height:23,src:l})):React__default.default.createElement("span",{style:u,key:o},l)});return React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-around",alignItems:"center"}},E)},v=React__default.default.createElement("div",{className:`${index$9.footerCls}__hotkey-content`},t==null?void 0:t.map((r,i)=>y(r,i))),h=a||{width:100};return React__default.default.createElement(es.Popover,{placement:"topLeft",content:v,onMouseMove:()=>n(!0),onMouseLeave:()=>{n(!1)},overlayClassName:"tool-hotkeys-popover",className:"tipsBar"},React__default.default.createElement("div",{className:"shortCutTitle",onMouseMove:()=>n(!0),onMouseLeave:()=>n(!1),style:h},e!=null?e:React__default.default.createElement("a",{className:"svg"},React__default.default.createElement("img",{src:c?icon_kj_h:icon_kj1,width:15,height:13,style:{marginRight:"5px"}}),s("Hotkeys"))))},ToolHotKey=({style:e,title:a,toolName:t})=>{const{pointCloudPattern:c}=React.useContext(PointCloudContext.PointCloudContext);if(!t||!shortCutTable[t])return null;let n=t;n===`${EPointCloudName.PointCloud}`&&c===ToolType.EToolName.Polygon&&(n+="_POLYGON");const s={style:e,title:a,shortCutList:shortCutTable[n]};return React__default.default.createElement(ToolHotKeyCom,__spreadValues({},s))};exports.ToolHotKeyCom=ToolHotKeyCom,exports.default=ToolHotKey,exports.shortCutTable=shortCutTable;
@@ -1 +1 @@
1
- "use strict";var index=require("../common/index.js"),icon_move_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js"),icon_mouse_left_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js"),icon_mouse_right_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js"),changePointCloudValid=require("../../../../../../assets/annotation/pointCloudTool/changePointCloudValid.svg.js"),copy=require("../../../../../../assets/annotation/pointCloudTool/copy.svg.js"),nextBox=require("../../../../../../assets/annotation/pointCloudTool/nextBox.svg.js"),patse=require("../../../../../../assets/annotation/pointCloudTool/patse.svg.js"),prevBox=require("../../../../../../assets/annotation/pointCloudTool/prevBox.svg.js"),rotate180_black=require("../../../../../../assets/annotation/pointCloudTool/rotate180_black.svg.js"),selectAll=require("../../../../../../assets/annotation/pointCloudTool/selectAll.svg.js"),selectMultiple=require("../../../../../../assets/annotation/pointCloudTool/selectMultiple.svg.js"),icon_tab_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_tab_kj.svg.js"),React=require("react"),icons=require("@ant-design/icons");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const changePointSize={name:"PointThickness",icon:React__default.default.createElement("span",{style:{display:" inline-block",width:14,height:14,borderRadius:"50%",border:"1px solid"}}),shortCut:["+","-"],linkSymbol:""},rotateRoundCenter={name:"RotateAroundCenterPoint",icon:React__default.default.createElement(icons.ReloadOutlined,null),shortCut:[icon_mouse_left_kj],noticeInfo:"DragOperation"},Drag3D={name:"PointCloudViewTranslate",icon:icon_move_kj,shortCut:[icon_mouse_right_kj],noticeInfo:"Drag"},DragTopView={name:"TopViewTranslate",icon:icon_move_kj,shortCut:[icon_mouse_right_kj],noticeInfo:"Drag"},ChangeInvalid={name:"ChangePointCloudValid",icon:changePointCloudValid,shortCut:["V"]},CopyBox={name:"CopyBox",icon:copy,shortCut:["Ctrl","C"]},PasteBox={name:"PasteBox",icon:patse,shortCut:["Ctrl","V"]},LeftRotate={name:"RotateLeft",icon:React__default.default.createElement(icons.RotateLeftOutlined,null),shortCut:["Q"]},RightRotate={name:"RotateRight",icon:React__default.default.createElement(icons.RotateRightOutlined,null),shortCut:["E"]},PrevBox={name:"PreviousBox",icon:prevBox,shortCut:["Shift","Tab"]},NextBox={name:"NextBox",icon:nextBox,shortCut:["Tab"]},Rotate180={name:"Rotate180",icon:rotate180_black,shortCut:["G"],noticeInfo:"SelectedStatus"},CopyPrevPage={name:"CopyPrevPage",icon:copy,shortCut:["Alt","C"]},ChangeBoxInvalid={name:"ChangeBoxValid",icon:icon_tab_kj,shortCut:["F"],noticeInfo:"SelectedStatus"},SelectMulti={name:"MultiSelect",icon:selectMultiple,shortCut:["Ctrl",icon_mouse_right_kj]},SelectAll={name:"SelectAllBox",icon:selectAll,shortCut:["Ctrl","A"]},pointCloudShortCutTable=[{name:"GeneralOperation"},index.backward,index.forward,changePointSize,index.scale,rotateRoundCenter,Drag3D,DragTopView,ChangeInvalid,{name:"RectPattern"},CopyBox,PasteBox,LeftRotate,RightRotate,PrevBox,NextBox,Rotate180,CopyPrevPage,ChangeBoxInvalid,SelectMulti,SelectAll,index.fullScreen];module.exports=pointCloudShortCutTable;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index=require("../common/index.js"),icon_move_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js"),icon_mouse_left_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js"),icon_mouse_right_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js"),changePointCloudValid=require("../../../../../../assets/annotation/pointCloudTool/changePointCloudValid.svg.js"),copy=require("../../../../../../assets/annotation/pointCloudTool/copy.svg.js"),nextBox=require("../../../../../../assets/annotation/pointCloudTool/nextBox.svg.js"),patse=require("../../../../../../assets/annotation/pointCloudTool/patse.svg.js"),prevBox=require("../../../../../../assets/annotation/pointCloudTool/prevBox.svg.js"),rotate180_black=require("../../../../../../assets/annotation/pointCloudTool/rotate180_black.svg.js"),selectAll=require("../../../../../../assets/annotation/pointCloudTool/selectAll.svg.js"),selectMultiple=require("../../../../../../assets/annotation/pointCloudTool/selectMultiple.svg.js"),icon_tab_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_tab_kj.svg.js"),icon_del_kj=require("../../../../../../assets/annotation/toolHotKeyIcon/icon_del_kj.svg.js"),React=require("react"),icons=require("@ant-design/icons"),index$1=require("../polygon/index.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const changePointSize={name:"PointThickness",icon:React__default.default.createElement("span",{style:{display:" inline-block",width:14,height:14,borderRadius:"50%",border:"1px solid"}}),shortCut:["+","-"],linkSymbol:""},rotateRoundCenter={name:"RotateAroundCenterPoint",icon:React__default.default.createElement(icons.ReloadOutlined,null),shortCut:[icon_mouse_left_kj],noticeInfo:"DragOperation"},Drag3D={name:"PointCloudViewTranslate",icon:icon_move_kj,shortCut:[icon_mouse_right_kj],noticeInfo:"Drag"},DragTopView={name:"TopViewTranslate",icon:icon_move_kj,shortCut:[icon_mouse_right_kj],noticeInfo:"Drag"},ChangeInvalid={name:"ChangePointCloudValid",icon:changePointCloudValid,shortCut:["V"]},CopyBox={name:"CopyBox",icon:copy,shortCut:["Ctrl","C"]},PasteBox={name:"PasteBox",icon:patse,shortCut:["Ctrl","V"]},LeftRotate={name:"RotateLeft",icon:React__default.default.createElement(icons.RotateLeftOutlined,null),shortCut:["Q"]},RightRotate={name:"RotateRight",icon:React__default.default.createElement(icons.RotateRightOutlined,null),shortCut:["E"]},PrevBox={name:"PreviousBox",icon:prevBox,shortCut:["Shift","Tab"]},NextBox={name:"NextBox",icon:nextBox,shortCut:["Tab"]},Rotate180={name:"Rotate180",icon:rotate180_black,shortCut:["G"],noticeInfo:"SelectedStatus"},CopyPrevPage={name:"CopyPrevPage",icon:copy,shortCut:["Alt","C"]},ChangeBoxInvalid={name:"ChangeBoxValid",icon:icon_tab_kj,shortCut:["F"],noticeInfo:"SelectedStatus"},SelectMulti={name:"MultiSelect",icon:selectMultiple,shortCut:["Ctrl",icon_mouse_right_kj]},SelectAll={name:"SelectAllBox",icon:selectAll,shortCut:["Ctrl","A"]},deleteBox={name:"Delete",icon:icon_del_kj,shortCut:["Del"],noticeInfo:"SelectedStatus"},pointCloudShortCutTable=[{name:"GeneralOperation"},index.backward,index.forward,changePointSize,index.scale,rotateRoundCenter,Drag3D,DragTopView,ChangeInvalid,{name:"RectPattern"},CopyBox,PasteBox,LeftRotate,RightRotate,PrevBox,NextBox,Rotate180,CopyPrevPage,ChangeBoxInvalid,deleteBox,SelectMulti,SelectAll,index.fullScreen],pointCloudShortCutTable_POLYGON=[{name:"GeneralOperation"},index.backward,index.forward,changePointSize,index.scale,rotateRoundCenter,Drag3D,DragTopView,ChangeInvalid,{name:"PolygonPattern"},index$1.polygon,index$1.invalidPolygon,index$1.selectedPolygon,index$1.changePolygonAttribute,index$1.deletePolygon,index$1.insertPolygonPoint,index$1.deletePolygonPoint];exports.default=pointCloudShortCutTable,exports.pointCloudShortCutTable_POLYGON=pointCloudShortCutTable_POLYGON;
@@ -1 +1 @@
1
- import{getClassName as u}from"../../utils/dom.js";import{PointCloud as D}from"@labelbee/lb-annotation";import{PointCloudUtils as I,toolStyleConverter as L,EPerspectiveView as E}from"@labelbee/lb-utils";import y from"classnames";import t,{useContext as v,useState as T,useRef as N,useEffect as f,useMemo as R}from"react";import{PointCloudContainer as k}from"./PointCloudLayout.js";import{PointCloudContext as A}from"./PointCloudContext.js";import{a2MapStateToProps as z}from"../../store/annotation/map.js";import{connect as F}from"react-redux";import{jsonParser as M}from"../../utils/index.js";import{useSingleBox as U}from"./hooks/useSingleBox.js";import{Switch as q}from"antd";import G from"../../hooks/useSize.js";import{usePointCloudViews as H}from"./hooks/usePointCloudViews.js";import{useTranslation as J}from"react-i18next";import{LabelBeeContext as K}from"../../store/ctx.js";var Q=Object.defineProperty,W=Object.defineProperties,X=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable,_=(e,o,r)=>o in e?Q(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,$=(e,o)=>{for(var r in o||(o={}))Y.call(o,r)&&_(e,r,o[r]);if(x)for(var r of x(o))Z.call(o,r)&&_(e,r,o[r]);return e},ee=(e,o)=>W(e,X(o));const te="LABELBEE-POINTCLOUD",w=t.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{}}),c=({perspectiveView:e})=>{const{isActive:o,setTarget3DView:r}=v(w),n=d=>y({[u("point-cloud-3d-view",d)]:!0,active:o});return t.createElement("span",{onClick:()=>{r(E[e])},className:n(e.toLocaleLowerCase())})},oe=()=>{const{reset3DView:e}=v(w);return t.createElement("div",{className:u("point-cloud-3d-sidebar")},t.createElement(c,{perspectiveView:"Top"}),t.createElement(c,{perspectiveView:"Front"}),t.createElement(c,{perspectiveView:"Left"}),t.createElement(c,{perspectiveView:"Back"}),t.createElement(c,{perspectiveView:"Right"}),t.createElement(c,{perspectiveView:"LFT"}),t.createElement(c,{perspectiveView:"RBT"}),t.createElement("span",{onClick:()=>{e()},className:u("point-cloud-3d-view","reset")}))},re=({currentData:e,config:o})=>{var r;const n=v(A),[d,b]=T(!0),p=N(null),{initPointCloud3d:C}=H(),a=G(p),{t:P}=J();f(()=>{!n.mainViewInstance||C==null||C(a)},[a]);const{selectedBox:m}=U(),g=s=>{var i;const l=m==null?void 0:m.info;l&&((i=n.mainViewInstance)==null||i.updateCameraByBox(l,s))},O=()=>{var s;(s=n.mainViewInstance)==null||s.resetCamera()};f(()=>{var s;if(p.current&&(e==null?void 0:e.url)){let i=n.mainViewInstance;if(!i&&a.width){const l={left:-a.width/2,right:a.width/2,top:a.height/2,bottom:-a.height/2,near:100,far:-100};i=new D({container:p.current,isOrthographicCamera:!0,orthographicParams:l}),n.setMainViewInstance(i)}if(e.result){const l=I.getBoxParamsFromResultList(e.result);l.forEach(h=>{var V;const B=(V=L.getColorFromConfig({attribute:h.attribute},ee($({},o),{attributeConfigurable:!0}),{}))==null?void 0:V.hex;i==null||i.generateBox(h,B)}),n.setPointCloudResult(l),n.setPointCloudValid((s=M(e.result))==null?void 0:s.valid)}}},[e,a]),f(()=>{m&&g(E.Top)},[m]);const j=R(()=>({reset3DView:O,setTarget3DView:g,isActive:!!m}),[m]),S=t.createElement("div",null,t.createElement("span",{style:{marginRight:8}},P("ShowArrows")),t.createElement(q,{size:"small",checked:d,onChange:s=>{var i;b(s),(i=n.mainViewInstance)==null||i.setShowDirection(s)}}));return t.createElement(k,{className:u("point-cloud-3d-container"),title:P("3DView"),toolbar:S,style:{height:e.mappingImgList&&((r=e.mappingImgList)==null?void 0:r.length)>0?"55%":"100%"}},t.createElement("div",{className:u("point-cloud-3d-content")},t.createElement(w.Provider,{value:j},t.createElement(oe,null)),t.createElement("div",{className:u("point-cloud-3d-view"),id:te,ref:p})))};var ie=F(z,null,null,{context:K})(re);export{ie as default};
1
+ import{getClassName as u}from"../../utils/dom.js";import{PointCloud as D}from"@labelbee/lb-annotation";import{PointCloudUtils as I,toolStyleConverter as L,EPerspectiveView as E}from"@labelbee/lb-utils";import y from"classnames";import t,{useContext as v,useState as T,useRef as N,useEffect as f,useMemo as R}from"react";import{PointCloudContainer as k}from"./PointCloudLayout.js";import{PointCloudContext as A}from"./PointCloudContext.js";import{a2MapStateToProps as z}from"../../store/annotation/map.js";import{connect as F}from"react-redux";import{jsonParser as M}from"../../utils/index.js";import{useSingleBox as U}from"./hooks/useSingleBox.js";import{Switch as q}from"antd";import G from"../../hooks/useSize.js";import{usePointCloudViews as H}from"./hooks/usePointCloudViews.js";import{useTranslation as J}from"react-i18next";import{LabelBeeContext as K}from"../../store/ctx.js";var Q=Object.defineProperty,W=Object.defineProperties,X=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable,_=(e,o,r)=>o in e?Q(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,$=(e,o)=>{for(var r in o||(o={}))Y.call(o,r)&&_(e,r,o[r]);if(x)for(var r of x(o))Z.call(o,r)&&_(e,r,o[r]);return e},ee=(e,o)=>W(e,X(o));const te="LABELBEE-POINTCLOUD",w=t.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{}}),c=({perspectiveView:e})=>{const{isActive:o,setTarget3DView:r}=v(w),n=d=>y({[u("point-cloud-3d-view",d)]:!0,active:o});return t.createElement("span",{onClick:()=>{r(E[e])},className:n(e.toLocaleLowerCase())})},oe=()=>{const{reset3DView:e}=v(w);return t.createElement("div",{className:u("point-cloud-3d-sidebar")},t.createElement(c,{perspectiveView:"Top"}),t.createElement(c,{perspectiveView:"Front"}),t.createElement(c,{perspectiveView:"Left"}),t.createElement(c,{perspectiveView:"Back"}),t.createElement(c,{perspectiveView:"Right"}),t.createElement(c,{perspectiveView:"LFT"}),t.createElement(c,{perspectiveView:"RBT"}),t.createElement("span",{onClick:()=>{e()},className:u("point-cloud-3d-view","reset")}))},re=({currentData:e,config:o})=>{var r;const n=v(A),[d,b]=T(!0),p=N(null),{initPointCloud3d:C}=H(),a=G(p),{t:P}=J();f(()=>{!n.mainViewInstance||C==null||C(a)},[a]);const{selectedBox:m}=U(),g=s=>{var i;const l=m==null?void 0:m.info;l&&((i=n.mainViewInstance)==null||i.updateCameraByBox(l,s))},O=()=>{var s;(s=n.mainViewInstance)==null||s.resetCamera()};f(()=>{var s;if(p.current&&(e==null?void 0:e.url)){let i=n.mainViewInstance;if(!i&&a.width){const l={left:-a.width/2,right:a.width/2,top:a.height/2,bottom:-a.height/2,near:100,far:-100};i=new D({container:p.current,isOrthographicCamera:!0,orthographicParams:l,config:o}),n.setMainViewInstance(i)}if(e.result){const l=I.getBoxParamsFromResultList(e.result);l.forEach(h=>{var V;const B=(V=L.getColorFromConfig({attribute:h.attribute},ee($({},o),{attributeConfigurable:!0}),{}))==null?void 0:V.hex;i==null||i.generateBox(h,B)}),n.setPointCloudResult(l),n.setPointCloudValid((s=M(e.result))==null?void 0:s.valid)}}},[e,a]),f(()=>{m&&g(E.Top)},[m]);const j=R(()=>({reset3DView:O,setTarget3DView:g,isActive:!!m}),[m]),S=t.createElement("div",null,t.createElement("span",{style:{marginRight:8}},P("ShowArrows")),t.createElement(q,{size:"small",checked:d,onChange:s=>{var i;b(s),(i=n.mainViewInstance)==null||i.setShowDirection(s)}}));return t.createElement(k,{className:u("point-cloud-3d-container"),title:P("3DView"),toolbar:S,style:{height:e.mappingImgList&&((r=e.mappingImgList)==null?void 0:r.length)>0?"55%":"100%"}},t.createElement("div",{className:u("point-cloud-3d-content")},t.createElement(w.Provider,{value:j},t.createElement(oe,null)),t.createElement("div",{className:u("point-cloud-3d-view"),id:te,ref:p})))};var ie=F(z,null,null,{context:K})(re);export{ie as default};
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud3DView.js","sources":["../../../src/components/pointCloudView/PointCloud3DView.tsx"],"sourcesContent":["/*\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-06-13 19:31:36\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-06-27 19:43:25\n */\n\nimport { getClassName } from '@/utils/dom';\nimport { PointCloud } from '@labelbee/lb-annotation';\nimport {\n EPerspectiveView,\n IPointCloudBox,\n PointCloudUtils,\n toolStyleConverter,\n} from '@labelbee/lb-utils';\nimport classNames from 'classnames';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { PointCloudContainer } from './PointCloudLayout';\nimport { PointCloudContext } from './PointCloudContext';\nimport { a2MapStateToProps, IA2MapStateProps } from '@/store/annotation/map';\nimport { connect } from 'react-redux';\nimport { jsonParser } from '@/utils';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport { Switch } from 'antd';\nimport useSize from '@/hooks/useSize';\nimport { usePointCloudViews } from './hooks/usePointCloudViews';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\nconst pointCloudID = 'LABELBEE-POINTCLOUD';\nconst PointCloud3DContext = React.createContext<{\n isActive: boolean;\n setTarget3DView: (perspectiveView: EPerspectiveView) => void;\n reset3DView: () => void;\n}>({\n isActive: false,\n setTarget3DView: () => { },\n reset3DView: () => { },\n});\n\nconst PointCloudViewIcon = ({\n perspectiveView,\n}: {\n perspectiveView: keyof typeof EPerspectiveView;\n}) => {\n const { isActive, setTarget3DView } = useContext(PointCloud3DContext);\n\n const getTarget3DViewClassName = (position: string) => {\n return classNames({\n [getClassName('point-cloud-3d-view', position)]: true,\n active: isActive,\n });\n };\n\n return (\n <span\n onClick={() => {\n setTarget3DView(EPerspectiveView[perspectiveView]);\n }}\n className={getTarget3DViewClassName(perspectiveView.toLocaleLowerCase())}\n />\n );\n};\n\nconst PointCloud3DSideBar = () => {\n const { reset3DView } = useContext(PointCloud3DContext);\n return (\n <div className={getClassName('point-cloud-3d-sidebar')}>\n <PointCloudViewIcon perspectiveView='Top' />\n <PointCloudViewIcon perspectiveView='Front' />\n <PointCloudViewIcon perspectiveView='Left' />\n <PointCloudViewIcon perspectiveView='Back' />\n <PointCloudViewIcon perspectiveView='Right' />\n <PointCloudViewIcon perspectiveView='LFT' />\n <PointCloudViewIcon perspectiveView='RBT' />\n <span\n onClick={() => {\n reset3DView();\n }}\n className={getClassName('point-cloud-3d-view', 'reset')}\n />\n </div>\n );\n};\n\nconst PointCloud3D: React.FC<IA2MapStateProps> = ({ currentData, config }) => {\n const ptCtx = useContext(PointCloudContext);\n const [showDirection, setShowDirection] = useState(true);\n const ref = useRef<HTMLDivElement>(null);\n const { initPointCloud3d } = usePointCloudViews();\n const size = useSize(ref);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (!ptCtx.mainViewInstance) {\n return;\n }\n initPointCloud3d?.(size);\n }, [size]);\n const { selectedBox } = useSingleBox();\n\n const setTarget3DView = (perspectiveView: EPerspectiveView) => {\n const box = selectedBox?.info;\n\n if (box) {\n ptCtx.mainViewInstance?.updateCameraByBox(box, perspectiveView);\n }\n };\n\n const reset3DView = () => {\n ptCtx.mainViewInstance?.resetCamera();\n };\n\n /**\n * Listen for data changes.\n */\n useEffect(() => {\n if (ref.current && currentData?.url) {\n let pointCloud = ptCtx.mainViewInstance;\n if (!pointCloud && size.width) {\n const orthographicParams = {\n left: -size.width / 2,\n right: size.width / 2,\n top: size.height / 2,\n bottom: -size.height / 2,\n near: 100,\n far: -100,\n }\n\n // Need to be showed\n pointCloud = new PointCloud({\n container: ref.current,\n isOrthographicCamera: true,\n orthographicParams,\n });\n ptCtx.setMainViewInstance(pointCloud);\n }\n\n if (currentData.result) {\n const boxParamsList = PointCloudUtils.getBoxParamsFromResultList(currentData.result);\n\n // Add Init Box\n boxParamsList.forEach((v: IPointCloudBox) => {\n const hex = toolStyleConverter.getColorFromConfig(\n { attribute: v.attribute },\n { ...config, attributeConfigurable: true },\n {},\n )?.hex;\n\n pointCloud?.generateBox(v, hex);\n });\n\n ptCtx.setPointCloudResult(boxParamsList);\n ptCtx.setPointCloudValid(jsonParser(currentData.result)?.valid);\n }\n\n }\n }, [currentData, size]);\n\n /**\n * Observe selectedID and reset camera to target top-view\n */\n useEffect(() => {\n if (selectedBox) {\n setTarget3DView(EPerspectiveView.Top);\n }\n }, [selectedBox]);\n\n const ptCloud3DCtx = useMemo(() => {\n return { reset3DView, setTarget3DView, isActive: !!selectedBox };\n }, [selectedBox]);\n\n const PointCloud3DTitle = (\n <div>\n <span style={{ marginRight: 8 }}>{t('ShowArrows')}</span>\n <Switch\n size='small'\n checked={showDirection}\n onChange={(showDirection) => {\n setShowDirection(showDirection);\n ptCtx.mainViewInstance?.setShowDirection(showDirection);\n }}\n />\n </div>\n );\n\n return (\n <PointCloudContainer\n className={getClassName('point-cloud-3d-container')}\n title={t('3DView')}\n toolbar={PointCloud3DTitle}\n style={{\n height:\n currentData.mappingImgList && currentData.mappingImgList?.length > 0 ? '55%' : '100%',\n }}\n >\n <div className={getClassName('point-cloud-3d-content')}>\n <PointCloud3DContext.Provider value={ptCloud3DCtx}>\n <PointCloud3DSideBar />\n </PointCloud3DContext.Provider>\n <div className={getClassName('point-cloud-3d-view')} id={pointCloudID} ref={ref} />\n </div>\n </PointCloudContainer>\n );\n};\n\nexport default connect(a2MapStateToProps, null, null, { context: LabelBeeContext })(PointCloud3D);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PointCloud3DView.js","sources":["../../../src/components/pointCloudView/PointCloud3DView.tsx"],"sourcesContent":["/*\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-06-13 19:31:36\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-06-27 19:43:25\n */\n\nimport { getClassName } from '@/utils/dom';\nimport { PointCloud } from '@labelbee/lb-annotation';\nimport {\n EPerspectiveView,\n IPointCloudBox,\n PointCloudUtils,\n toolStyleConverter,\n} from '@labelbee/lb-utils';\nimport classNames from 'classnames';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { PointCloudContainer } from './PointCloudLayout';\nimport { PointCloudContext } from './PointCloudContext';\nimport { a2MapStateToProps, IA2MapStateProps } from '@/store/annotation/map';\nimport { connect } from 'react-redux';\nimport { jsonParser } from '@/utils';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport { Switch } from 'antd';\nimport useSize from '@/hooks/useSize';\nimport { usePointCloudViews } from './hooks/usePointCloudViews';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\nconst pointCloudID = 'LABELBEE-POINTCLOUD';\nconst PointCloud3DContext = React.createContext<{\n isActive: boolean;\n setTarget3DView: (perspectiveView: EPerspectiveView) => void;\n reset3DView: () => void;\n}>({\n isActive: false,\n setTarget3DView: () => {},\n reset3DView: () => {},\n});\n\nconst PointCloudViewIcon = ({\n perspectiveView,\n}: {\n perspectiveView: keyof typeof EPerspectiveView;\n}) => {\n const { isActive, setTarget3DView } = useContext(PointCloud3DContext);\n\n const getTarget3DViewClassName = (position: string) => {\n return classNames({\n [getClassName('point-cloud-3d-view', position)]: true,\n active: isActive,\n });\n };\n\n return (\n <span\n onClick={() => {\n setTarget3DView(EPerspectiveView[perspectiveView]);\n }}\n className={getTarget3DViewClassName(perspectiveView.toLocaleLowerCase())}\n />\n );\n};\n\nconst PointCloud3DSideBar = () => {\n const { reset3DView } = useContext(PointCloud3DContext);\n return (\n <div className={getClassName('point-cloud-3d-sidebar')}>\n <PointCloudViewIcon perspectiveView='Top' />\n <PointCloudViewIcon perspectiveView='Front' />\n <PointCloudViewIcon perspectiveView='Left' />\n <PointCloudViewIcon perspectiveView='Back' />\n <PointCloudViewIcon perspectiveView='Right' />\n <PointCloudViewIcon perspectiveView='LFT' />\n <PointCloudViewIcon perspectiveView='RBT' />\n <span\n onClick={() => {\n reset3DView();\n }}\n className={getClassName('point-cloud-3d-view', 'reset')}\n />\n </div>\n );\n};\n\nconst PointCloud3D: React.FC<IA2MapStateProps> = ({ currentData, config }) => {\n const ptCtx = useContext(PointCloudContext);\n const [showDirection, setShowDirection] = useState(true);\n const ref = useRef<HTMLDivElement>(null);\n const { initPointCloud3d } = usePointCloudViews();\n const size = useSize(ref);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (!ptCtx.mainViewInstance) {\n return;\n }\n initPointCloud3d?.(size);\n }, [size]);\n const { selectedBox } = useSingleBox();\n\n const setTarget3DView = (perspectiveView: EPerspectiveView) => {\n const box = selectedBox?.info;\n\n if (box) {\n ptCtx.mainViewInstance?.updateCameraByBox(box, perspectiveView);\n }\n };\n\n const reset3DView = () => {\n ptCtx.mainViewInstance?.resetCamera();\n };\n\n /**\n * Listen for data changes.\n */\n useEffect(() => {\n if (ref.current && currentData?.url) {\n let pointCloud = ptCtx.mainViewInstance;\n if (!pointCloud && size.width) {\n const orthographicParams = {\n left: -size.width / 2,\n right: size.width / 2,\n top: size.height / 2,\n bottom: -size.height / 2,\n near: 100,\n far: -100,\n };\n\n // Need to be showed\n pointCloud = new PointCloud({\n container: ref.current,\n isOrthographicCamera: true,\n orthographicParams,\n config,\n });\n ptCtx.setMainViewInstance(pointCloud);\n }\n\n if (currentData.result) {\n const boxParamsList = PointCloudUtils.getBoxParamsFromResultList(currentData.result);\n\n // Add Init Box\n boxParamsList.forEach((v: IPointCloudBox) => {\n const hex = toolStyleConverter.getColorFromConfig(\n { attribute: v.attribute },\n { ...config, attributeConfigurable: true },\n {},\n )?.hex;\n\n pointCloud?.generateBox(v, hex);\n });\n\n ptCtx.setPointCloudResult(boxParamsList);\n ptCtx.setPointCloudValid(jsonParser(currentData.result)?.valid);\n }\n }\n }, [currentData, size]);\n\n /**\n * Observe selectedID and reset camera to target top-view\n */\n useEffect(() => {\n if (selectedBox) {\n setTarget3DView(EPerspectiveView.Top);\n }\n }, [selectedBox]);\n\n const ptCloud3DCtx = useMemo(() => {\n return { reset3DView, setTarget3DView, isActive: !!selectedBox };\n }, [selectedBox]);\n\n const PointCloud3DTitle = (\n <div>\n <span style={{ marginRight: 8 }}>{t('ShowArrows')}</span>\n <Switch\n size='small'\n checked={showDirection}\n onChange={(showDirection) => {\n setShowDirection(showDirection);\n ptCtx.mainViewInstance?.setShowDirection(showDirection);\n }}\n />\n </div>\n );\n\n return (\n <PointCloudContainer\n className={getClassName('point-cloud-3d-container')}\n title={t('3DView')}\n toolbar={PointCloud3DTitle}\n style={{\n height:\n currentData.mappingImgList && currentData.mappingImgList?.length > 0 ? '55%' : '100%',\n }}\n >\n <div className={getClassName('point-cloud-3d-content')}>\n <PointCloud3DContext.Provider value={ptCloud3DCtx}>\n <PointCloud3DSideBar />\n </PointCloud3DContext.Provider>\n <div className={getClassName('point-cloud-3d-view')} id={pointCloudID} ref={ref} />\n </div>\n </PointCloudContainer>\n );\n};\n\nexport default connect(a2MapStateToProps, null, null, { context: LabelBeeContext })(PointCloud3D);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{ActionsHistory as p}from"@labelbee/lb-annotation";import y,{useState as e,useRef as Z,useMemo as x}from"react";const v=y.createContext({pointCloudBoxList:[],polygonList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],setPolygonList:()=>{},zoom:1,setZoom:()=>{},history:new p,syncAllViewPointCloudColor:()=>{}}),H=({children:S})=>{const[s,r]=e([]),[u,A]=e([]),[o,c]=e([]),[C,B]=e(!0),[w,g]=e(1),[d,h]=e(),[P,L]=e(),[V,b]=e(),[i,D]=e(),R=Z(new p).current,I=x(()=>o.length===1?o[0]:"",[o]),k=x(()=>{const M=s.find(t=>t.id===I),z=t=>{const n=s.concat(t);return r(n),n},E=t=>{B(t!==!1)},l=t=>{t===void 0&&c([]),typeof t=="string"&&c([t]),Array.isArray(t)&&c(Array.from(new Set(t)))};return{selectedID:I,pointCloudBoxList:s,selectedIDs:o,setPointCloudResult:r,setSelectedIDs:l,addPointCloudBox:z,valid:C,selectedPointCloudBox:M,setPointCloudValid:E,addSelectedID:t=>{o.includes(t)?l(o.filter(n=>n!==t)):l([...o,t])},selectedAllBoxes:()=>{l(s.map(t=>t.id))},topViewInstance:d,setTopViewInstance:h,sideViewInstance:P,setSideViewInstance:L,backViewInstance:V,setBackViewInstance:b,mainViewInstance:i,setMainViewInstance:D,polygonList:u,setPolygonList:A,zoom:w,setZoom:g,history:R,syncAllViewPointCloudColor:t=>{const n=i==null?void 0:i.highlightOriginPointCloud(t);return new Promise(T=>{n==null||n.then(a=>{[d].forEach(f=>{var m;a&&((m=f==null?void 0:f.pointCloudInstance)==null||m.updateColor(a),T({color:a}))})})})}}},[C,o,s,u,d,P,V,i,w]);return y.createElement(v.Provider,{value:k},S)};export{v as PointCloudContext,H as PointCloudProvider};
1
+ import{ActionsHistory as A,EToolName as x}from"@labelbee/lb-annotation";import v,{useState as e,useRef as j,useMemo as S}from"react";const B=v.createContext({pointCloudBoxList:[],polygonList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],setPolygonList:()=>{},zoom:1,setZoom:()=>{},history:new A,syncAllViewPointCloudColor:()=>{},defaultAttribute:"",setDefaultAttribute:()=>{},pointCloudPattern:x.Rect,setPointCloudPattern:()=>{}}),q=({children:g})=>{const[s,r]=e([]),[u,b]=e([]),[o,c]=e([]),[C,h]=e(!0),[P,L]=e(1),[d,D]=e(),[w,R]=e(),[f,k]=e(),[i,E]=e(),[V,M]=e(""),[p,T]=e(x.Rect),z=j(new A).current,I=S(()=>o.length===1?o[0]:"",[o]),Z=S(()=>{const H=s.find(t=>t.id===I),N=t=>{const n=s.concat(t);return r(n),n},O=t=>{h(t!==!1)},l=t=>{t===void 0&&c([]),typeof t=="string"&&c([t]),Array.isArray(t)&&c(Array.from(new Set(t)))};return{selectedID:I,pointCloudBoxList:s,selectedIDs:o,setPointCloudResult:r,setSelectedIDs:l,addPointCloudBox:N,valid:C,selectedPointCloudBox:H,setPointCloudValid:O,addSelectedID:t=>{o.includes(t)?l(o.filter(n=>n!==t)):l([...o,t])},selectedAllBoxes:()=>{l(s.map(t=>t.id))},topViewInstance:d,setTopViewInstance:D,sideViewInstance:w,setSideViewInstance:R,backViewInstance:f,setBackViewInstance:k,mainViewInstance:i,setMainViewInstance:E,polygonList:u,setPolygonList:b,zoom:P,setZoom:L,history:z,syncAllViewPointCloudColor:t=>{const n=i==null?void 0:i.highlightOriginPointCloud(t);return new Promise(_=>{n==null||n.then(a=>{[d].forEach(m=>{var y;a&&((y=m==null?void 0:m.pointCloudInstance)==null||y.updateColor(a),_({color:a}))})})})},defaultAttribute:V,setDefaultAttribute:M,pointCloudPattern:p,setPointCloudPattern:T}},[C,o,s,u,d,w,f,i,P,V,p]);return v.createElement(B.Provider,{value:Z},g)};export{B as PointCloudContext,q as PointCloudProvider};