@labelbee/lb-components 1.23.0-alpha.45 → 1.23.0-alpha.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var ahooks=require("ahooks"),es=require("antd/es"),React=require("react"),reactRedux=require("react-redux"),usePointCloudViews=require("../pointCloudView/hooks/usePointCloudViews.js"),PointCloudContext=require("../pointCloudView/PointCloudContext.js"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,i,n)=>i in u?__defProp(u,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):u[i]=n,__spreadValues=(u,i)=>{for(var n in i||(i={}))__hasOwnProp.call(i,n)&&__defNormalProp(u,n,i[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(i))__propIsEnum.call(i,n)&&__defNormalProp(u,n,i[n]);return u},__spreadProps=(u,i)=>__defProps(u,__getOwnPropDescs(i));const PointCloud2DRectOperationView=u=>{var i;const{mappingData:n,size:s,config:p,checkMode:E,afterImgOnLoad:S,shouldExcludePointCloudBoxListUpdate:d}=u,v=(i=n==null?void 0:n.url)!=null?i:"",{pointCloudBoxList:R,setPointCloudResult:P,defaultAttribute:_,rectList:g,addRectIn2DView:j,updateRectIn2DView:C,removeRectIn2DView:q}=React.useContext(PointCloudContext.PointCloudContext),{update2DViewRect:B,remove2DViewRect:M}=usePointCloudViews.usePointCloudViews(),m=React__default.default.useRef(null),r=React.useRef(null),I=ahooks.useMemoizedFn(B),x=ahooks.useMemoizedFn(M),D=React.useRef(null),[z,h]=React.useState(!0),b=React.useMemo(()=>g==null?void 0:g.filter(e=>e.imageName===(n==null?void 0:n.path)),[n==null?void 0:n.path,g]),f=ahooks.useLatest(n==null?void 0:n.path),O=e=>{const{boxID:o}=e;if(!d&&o){const t=I==null?void 0:I(e);D.current=t,P(t);return}C(e,!0)},L=e=>{f.current&&j(__spreadProps(__spreadValues({},e),{imageName:f.current}))},V=e=>{if(!d){const o=e.find(t=>t.boxID);if(o){const t=x==null?void 0:x(o);D.current=t,P(t),l();return}}q(e)},A=ahooks.useMemoizedFn(()=>{let e=[];return R.forEach(o=>{const{rects:t=[],id:c,attribute:a,trackID:w}=o,y=t.find(N=>N.imageName===f.current),F=c+"_"+f.current;y&&(e=[...e,__spreadProps(__spreadValues({},y),{boxID:c,id:F,attribute:a,order:w})])}),e}),l=ahooks.useMemoizedFn(()=>{var e,o,t;const c=d?[]:A(),a=(e=r.current)==null?void 0:e.selectedRectID;(o=r.current)==null||o.setResult([...c,...b]),a&&((t=r.current)==null||t.setSelectedRectID(a))});return React.useEffect(()=>{if(m.current){const e=new lbAnnotation.PointCloud2DRectOperation({container:m.current,size:s,config:__spreadProps(__spreadValues({},p),{isShowOrder:!0,attributeConfigurable:!0}),checkMode:E});return r.current=e,r.current.init(),r.current.on("updateDragResult",O),r.current.on("afterAddingDrawingRect",L),r.current.on("deleteSelectedRects",V),()=>{var o,t,c,a;(o=r.current)==null||o.unbind("updateDragResult",O),(t=r.current)==null||t.unbind("afterAddingDrawingRect",L),(c=r.current)==null||c.unbind("deleteSelectedRects",V),(a=r.current)==null||a.destroy()}}},[]),React.useEffect(()=>{h(!0),r.current&&v&&lbAnnotation.ImgUtils.load(v).then(e=>{r.current.setImgNode(e),S(e),h(!1)})},[v]),React.useEffect(()=>{var e;(e=r.current)==null||e.setSize(s)},[s]),React.useEffect(()=>{R!==D.current&&l()},[R]),React.useEffect(()=>{var e,o,t;const c=b.find(a=>a.id===r.current.selectedRectID);(o=(e=r.current)==null?void 0:e.setDefaultAttribute)==null||o.call(e,_),c&&C(__spreadProps(__spreadValues({},(t=r.current)==null?void 0:t.selectedRect),{attribute:_})),l()},[_]),React.useEffect(()=>{l()},[b]),React.useEffect(()=>{l()},[d]),React.useEffect(()=>{var e,o,t,c;const a=(o=(e=r.current)==null?void 0:e.config)!=null?o:{},w=__spreadProps(__spreadValues({},a),{attributeList:(t=p.attributeList)!=null?t:[]});(c=r.current)==null||c.setConfig(JSON.stringify(w))},[p.attributeList]),React__default.default.createElement(es.Spin,{spinning:z},React__default.default.createElement("div",{ref:m,style:__spreadValues({position:"relative"},s)}))};var PointCloud2DRectOperationView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DRectOperationView);module.exports=PointCloud2DRectOperationView$1;
1
+ "use strict";var ahooks=require("ahooks"),es=require("antd/es"),React=require("react"),reactRedux=require("react-redux"),usePointCloudViews=require("../pointCloudView/hooks/usePointCloudViews.js"),PointCloudContext=require("../pointCloudView/PointCloudContext.js"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,i,l)=>i in u?__defProp(u,i,{enumerable:!0,configurable:!0,writable:!0,value:l}):u[i]=l,__spreadValues=(u,i)=>{for(var l in i||(i={}))__hasOwnProp.call(i,l)&&__defNormalProp(u,l,i[l]);if(__getOwnPropSymbols)for(var l of __getOwnPropSymbols(i))__propIsEnum.call(i,l)&&__defNormalProp(u,l,i[l]);return u},__spreadProps=(u,i)=>__defProps(u,__getOwnPropDescs(i)),__async=(u,i,l)=>new Promise((c,d)=>{var v=a=>{try{p(l.next(a))}catch(f){d(f)}},R=a=>{try{p(l.throw(a))}catch(f){d(f)}},p=a=>a.done?c(a.value):Promise.resolve(a.value).then(v,R);p((l=l.apply(u,i)).next())});const PointCloud2DRectOperationView=u=>{var i,l;const{mappingData:c,size:d,config:v,checkMode:R,afterImgOnLoad:p,shouldExcludePointCloudBoxListUpdate:a}=u,f=(i=c==null?void 0:c.url)!=null?i:"",m=(l=c==null?void 0:c.fallbackUrl)!=null?l:"",{pointCloudBoxList:b,setPointCloudResult:y,defaultAttribute:D,rectList:w,addRectIn2DView:N,updateRectIn2DView:x,removeRectIn2DView:B}=React.useContext(PointCloudContext.PointCloudContext),{update2DViewRect:M,remove2DViewRect:z}=usePointCloudViews.usePointCloudViews(),P=React__default.default.useRef(null),n=React.useRef(null),O=ahooks.useMemoizedFn(M),L=ahooks.useMemoizedFn(z),C=React.useRef(null),[A,E]=React.useState(!0),h=React.useMemo(()=>w==null?void 0:w.filter(e=>e.imageName===(c==null?void 0:c.path)),[c==null?void 0:c.path,w]),g=ahooks.useLatest(c==null?void 0:c.path),V=e=>{const{boxID:o}=e;if(!a&&o){const t=O==null?void 0:O(e);C.current=t,y(t);return}x(e,!0)},S=e=>{g.current&&N(__spreadProps(__spreadValues({},e),{imageName:g.current}))},j=e=>{if(!a){const o=e.find(t=>t.boxID);if(o){const t=L==null?void 0:L(o);C.current=t,y(t),_();return}}B(e)},F=ahooks.useMemoizedFn(()=>{let e=[];return b.forEach(o=>{const{rects:t=[],id:r,attribute:s,trackID:I}=o,q=t.find(k=>k.imageName===g.current),U=r+"_"+g.current;q&&(e=[...e,__spreadProps(__spreadValues({},q),{boxID:r,id:U,attribute:s,order:I})])}),e}),_=ahooks.useMemoizedFn(()=>{var e,o,t;const r=a?[]:F(),s=(e=n.current)==null?void 0:e.selectedRectID;(o=n.current)==null||o.setResult([...r,...h]),s&&((t=n.current)==null||t.setSelectedRectID(s))});return React.useEffect(()=>{if(P.current){const e=new lbAnnotation.PointCloud2DRectOperation({container:P.current,size:d,config:__spreadProps(__spreadValues({},v),{isShowOrder:!0,attributeConfigurable:!0}),checkMode:R});return n.current=e,n.current.init(),n.current.on("updateDragResult",V),n.current.on("afterAddingDrawingRect",S),n.current.on("deleteSelectedRects",j),()=>{var o,t,r,s;(o=n.current)==null||o.unbind("updateDragResult",V),(t=n.current)==null||t.unbind("afterAddingDrawingRect",S),(r=n.current)==null||r.unbind("deleteSelectedRects",j),(s=n.current)==null||s.destroy()}}},[]),React.useEffect(()=>{const e=t=>__async(void 0,null,function*(){try{return yield lbAnnotation.ImgUtils.load(t)}catch(r){return console.error("Error loading image:",r),null}}),o=()=>__async(void 0,null,function*(){var t;E(!0);let r=yield e(f);!r&&m&&(r=yield e(m)),r&&((t=n.current)==null||t.setImgNode(r),p(r)),E(!1)});n.current&&(f||m)&&o()},[f,m]),React.useEffect(()=>{var e;(e=n.current)==null||e.setSize(d)},[d]),React.useEffect(()=>{b!==C.current&&_()},[b]),React.useEffect(()=>{var e,o,t;const r=h.find(s=>s.id===n.current.selectedRectID);(o=(e=n.current)==null?void 0:e.setDefaultAttribute)==null||o.call(e,D),r&&x(__spreadProps(__spreadValues({},(t=n.current)==null?void 0:t.selectedRect),{attribute:D})),_()},[D]),React.useEffect(()=>{_()},[h]),React.useEffect(()=>{_()},[a]),React.useEffect(()=>{var e,o,t,r;const s=(o=(e=n.current)==null?void 0:e.config)!=null?o:{},I=__spreadProps(__spreadValues({},s),{attributeList:(t=v.attributeList)!=null?t:[]});(r=n.current)==null||r.setConfig(JSON.stringify(I))},[v.attributeList]),React__default.default.createElement(es.Spin,{spinning:A},React__default.default.createElement("div",{ref:P,style:__spreadValues({position:"relative"},d)}))};var PointCloud2DRectOperationView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DRectOperationView);module.exports=PointCloud2DRectOperationView$1;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),React=require("react"),index=require("../AnnotationView/index.js"),useSize=require("../../hooks/useSize.js"),useSingleBox=require("./hooks/useSingleBox.js"),useHighlight=require("./hooks/useHighlight.js"),index$2=require("./components/HighlightVisible/index.js"),PointCloudContext=require("./PointCloudContext.js"),useDataLinkSwitch=require("./hooks/useDataLinkSwitch.js"),index$1=require("../pointCloud2DRectOperationView/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__async=(e,a,i)=>new Promise((l,u)=>{var f=t=>{try{o(i.next(t))}catch(n){u(n)}},r=t=>{try{o(i.throw(t))}catch(n){u(n)}},o=t=>t.done?l(t.value):Promise.resolve(t.value).then(f,r);o((i=i.apply(e,a)).next())});const PointCloud2DSingleView=({view2dData:e,setSelectedID:a,currentData:i,showEnlarge:l,checkMode:u=!1,measureVisible:f})=>{var r,o;const t=React.useRef(null),n=React.useRef(),{selectedBox:c}=useSingleBox.useSingleBox(),m=useSize(t),{url:p,calib:x,path:S}=e,{toggle2dVisible:y,isHighlightVisible:j}=useHighlight.useHighlight({currentData:i}),[q,v]=React.useState(!1),{cuboidBoxIn2DView:h,cacheImageNodeSize:P}=React.useContext(PointCloudContext.PointCloudContext),_=!e,B=React.useMemo(()=>({zIndex:l?-1:101,is2DView:!h,imageName:e.path}),[l,h,e.path]),{rendered:V,isLinking:z}=useDataLinkSwitch(B),k=d=>{g(),P({path:S,imgNode:d})},g=React.useCallback(()=>{var d,b;const C=(d=n.current)==null?void 0:d.toolInstance;if(a(""),!c||!C)return;const s=e.annotations.find(R=>R.annotation.id===c.info.id);let L="";s&&((b=s==null?void 0:s.annotation.pointList)==null?void 0:b.length)>0&&(C.focusPositionByPointList(s==null?void 0:s.annotation.pointList),L=c.info.id,a(L))},[c,n.current,e.annotations]);React.useEffect(()=>{g()},[g]);const I=()=>__async(void 0,null,function*(){v(!0),yield y(p,x),v(!1)});return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image"),ref:t},h?React__default.default.createElement(index,{src:(r=e==null?void 0:e.url)!=null?r:"",fallbackSrc:(o=e==null?void 0:e.fallbackUrl)!=null?o:"",annotations:e.annotations,size:m,ref:n,globalStyle:{display:_?"none":"block"},afterImgOnLoad:k,zoomInfo:{min:.01,max:1e3,ratio:.4},measureVisible:f}):React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$1,{shouldExcludePointCloudBoxListUpdate:!z,mappingData:e,size:m,checkMode:u,afterImgOnLoad:k}),V),x&&React__default.default.createElement(index$2,{visible:j(p),onClick:I,loading:q,style:{position:"absolute",right:16,top:16,zIndex:l?-1:101}}))};module.exports=PointCloud2DSingleView;
1
+ "use strict";var dom=require("../../utils/dom.js"),React=require("react"),index=require("../AnnotationView/index.js"),useSize=require("../../hooks/useSize.js"),useSingleBox=require("./hooks/useSingleBox.js"),useHighlight=require("./hooks/useHighlight.js"),index$2=require("./components/HighlightVisible/index.js"),PointCloudContext=require("./PointCloudContext.js"),useDataLinkSwitch=require("./hooks/useDataLinkSwitch.js"),index$1=require("../pointCloud2DRectOperationView/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__async=(e,a,i)=>new Promise((l,u)=>{var f=t=>{try{o(i.next(t))}catch(n){u(n)}},r=t=>{try{o(i.throw(t))}catch(n){u(n)}},o=t=>t.done?l(t.value):Promise.resolve(t.value).then(f,r);o((i=i.apply(e,a)).next())});const PointCloud2DSingleView=({view2dData:e,setSelectedID:a,currentData:i,showEnlarge:l,checkMode:u=!1,measureVisible:f})=>{var r,o;const t=React.useRef(null),n=React.useRef(),{selectedBox:c}=useSingleBox.useSingleBox(),m=useSize(t),{url:p,fallbackUrl:x,calib:v,path:y}=e,{toggle2dVisible:j,isHighlightVisible:q}=useHighlight.useHighlight({currentData:i}),[P,k]=React.useState(!1),{cuboidBoxIn2DView:h,cacheImageNodeSize:_}=React.useContext(PointCloudContext.PointCloudContext),B=!e,V=React.useMemo(()=>({zIndex:l?-1:101,is2DView:!h,imageName:e.path}),[l,h,e.path]),{rendered:z,isLinking:I}=useDataLinkSwitch(V),b=d=>{g(),_({path:y,imgNode:d})},g=React.useCallback(()=>{var d,C;const L=(d=n.current)==null?void 0:d.toolInstance;if(a(""),!c||!L)return;const s=e.annotations.find(E=>E.annotation.id===c.info.id);let S="";s&&((C=s==null?void 0:s.annotation.pointList)==null?void 0:C.length)>0&&(L.focusPositionByPointList(s==null?void 0:s.annotation.pointList),S=c.info.id,a(S))},[c,n.current,e.annotations]);React.useEffect(()=>{g()},[g]);const R=()=>__async(void 0,null,function*(){k(!0),yield j(p,x!=null?x:"",v),k(!1)});return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image"),ref:t},h?React__default.default.createElement(index,{src:(r=e==null?void 0:e.url)!=null?r:"",fallbackSrc:(o=e==null?void 0:e.fallbackUrl)!=null?o:"",annotations:e.annotations,size:m,ref:n,globalStyle:{display:B?"none":"block"},afterImgOnLoad:b,zoomInfo:{min:.01,max:1e3,ratio:.4},measureVisible:f}):React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$1,{shouldExcludePointCloudBoxListUpdate:!I,mappingData:e,size:m,checkMode:u,afterImgOnLoad:b}),z),v&&React__default.default.createElement(index$2,{visible:q(p),onClick:R,loading:P,style:{position:"absolute",right:16,top:16,zIndex:l?-1:101}}))};module.exports=PointCloud2DSingleView;
@@ -1 +1 @@
1
- "use strict";var map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),React=require("react"),index$1=require("../AnnotationView/index.js"),reactRedux=require("react-redux"),PointCloudContext=require("./PointCloudContext.js"),index=require("./components/TitleButton/index.js"),antd=require("antd"),highlightSegmentWorker=require("../../_virtual/highlightSegmentWorker.js"),lbAnnotation=require("@labelbee/lb-annotation"),_=require("lodash");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,n,r)=>n in t?__defProp(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r,__spreadValues=(t,n)=>{for(var r in n||(n={}))__hasOwnProp.call(n,r)&&__defNormalProp(t,r,n[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(n))__propIsEnum.call(n,r)&&__defNormalProp(t,r,n[r]);return t},__spreadProps=(t,n)=>__defProps(t,__getOwnPropDescs(n));const PointCloudSegment2DSingleView=({path:t,url:n,calib:r,pcdUrl:s,highlightAttribute:l})=>{const{ptSegmentInstance:e,cacheImageNodeSize:S,imageSizes:y}=React.useContext(PointCloudContext.PointCloudContext),x=React.useRef(null),f=React.useRef(0),p=React.useRef({}),c=React.useRef(),[g,v]=React.useState([]),[w,h]=React.useState(!1),P=React.useRef(void 0);React.useEffect(()=>()=>{f.current=0,p.current={},c.current=void 0},[s]);const m=React.useCallback(()=>{var o,a,i;if(f.current=f.current+1,f.current===2){const u=(o=e==null?void 0:e.store)==null?void 0:o.originPoints;if(!u||!c.current){console.error("cacheMappingPCD2Img Error",{path:t,points:u,filterSize:c.current});return}p.current=(i=(a=lbAnnotation.pointMappingLidar2image(u,r,c.current))==null?void 0:a.pcdMapping)!=null?i:{}}},[e]),C=React.useMemo(()=>{const o=(a,i)=>{var u,b;if(a&&c.current){P.current&&((b=(u=P.current)==null?void 0:u.terminate)==null||b.call(u));const E=p.current,d=new highlightSegmentWorker;d.current=d,h(!0),d.postMessage({cacheMap:E,indexes:a,defaultRGBA:i}),d.onmessage=O=>{v(O.data.annotations),d.terminate(),h(!1),d.current=void 0}}};return _.debounce(o,100)},[]);React.useEffect(()=>{if(!(e==null?void 0:e.store))return;const o=e.store.getHighlightAttribute(l!=null?l:""),a=e==null?void 0:e.getColorFromConfig(l!=null?l:"");C(o.flat(),a.stroke)},[l,e]),React.useEffect(()=>{if(e){const o=({newAttribute:a})=>{const i=e==null?void 0:e.getColorFromConfig(a);i&&v(g.map(u=>__spreadProps(__spreadValues({},u),{defaultRGBA:i.stroke})))};return e.on("updateDefaultAttribute",o),()=>{e.unbind("updateDefaultAttribute",o)}}},[e,g]),React.useEffect(()=>{if(e){const o=a=>{if(a.cacheSegData){const{cacheSegData:i}=a;if(i==null?void 0:i.indexes){const u=e.getColorFromConfig(i.attribute);C(i==null?void 0:i.indexes,u.stroke)}}else v([])};return e.on("syncPointCloudStatus",o),e.on("loadPCDFileEnd",m),()=>{e.unbind("syncPointCloudStatus",o),e.unbind("loadPCDFileEnd",m)}}},[e,s,y]);const D=o=>{S({path:t,imgNode:o}),c.current={width:o.width,height:o.height},m()};return React__default.default.createElement("div",{key:t,style:{position:"relative"},ref:x},React__default.default.createElement(index,{title:r.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF",position:"absolute",top:10,left:10,zIndex:1}}),React__default.default.createElement(antd.Spin,{spinning:w,delay:1e3},React__default.default.createElement(index$1,{size:{width:300,height:200},key:t,src:n,annotations:g,afterImgOnLoad:D})))},PointCloudSegment2DView=({currentData:t,highlightAttribute:n})=>{var r;const s=(r=t.mappingImgList)!=null?r:[];return(s==null?void 0:s.length)>0?React__default.default.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},s==null?void 0:s.map((l,e)=>l.calib&&React__default.default.createElement(PointCloudSegment2DSingleView,{key:l.path+e,path:l.path,url:l.url,calib:l.calib,pcdUrl:t.url,highlightAttribute:n}))):null};var PointCloudSegment2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudSegment2DView);module.exports=PointCloudSegment2DView$1;
1
+ "use strict";var map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),React=require("react"),index$1=require("../AnnotationView/index.js"),reactRedux=require("react-redux"),PointCloudContext=require("./PointCloudContext.js"),index=require("./components/TitleButton/index.js"),antd=require("antd"),highlightSegmentWorker=require("../../_virtual/highlightSegmentWorker.js"),lbAnnotation=require("@labelbee/lb-annotation"),_=require("lodash");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,r,o)=>r in t?__defProp(t,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[r]=o,__spreadValues=(t,r)=>{for(var o in r||(r={}))__hasOwnProp.call(r,o)&&__defNormalProp(t,o,r[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(r))__propIsEnum.call(r,o)&&__defNormalProp(t,o,r[o]);return t},__spreadProps=(t,r)=>__defProps(t,__getOwnPropDescs(r));const PointCloudSegment2DSingleView=({path:t,url:r,fallbackUrl:o,calib:s,pcdUrl:u,highlightAttribute:c})=>{const{ptSegmentInstance:e,cacheImageNodeSize:y,imageSizes:x}=React.useContext(PointCloudContext.PointCloudContext),w=React.useRef(null),p=React.useRef(0),g=React.useRef({}),d=React.useRef(),[v,m]=React.useState([]),[D,P]=React.useState(!1),b=React.useRef(void 0);React.useEffect(()=>()=>{p.current=0,g.current={},d.current=void 0},[u]);const h=React.useCallback(()=>{var n,l,i;if(p.current=p.current+1,p.current===2){const a=(n=e==null?void 0:e.store)==null?void 0:n.originPoints;if(!a||!d.current){console.error("cacheMappingPCD2Img Error",{path:t,points:a,filterSize:d.current});return}g.current=(i=(l=lbAnnotation.pointMappingLidar2image(a,s,d.current))==null?void 0:l.pcdMapping)!=null?i:{}}},[e]),C=React.useMemo(()=>{const n=(l,i)=>{var a,S;if(l&&d.current){b.current&&((S=(a=b.current)==null?void 0:a.terminate)==null||S.call(a));const k=g.current,f=new highlightSegmentWorker;f.current=f,P(!0),f.postMessage({cacheMap:k,indexes:l,defaultRGBA:i}),f.onmessage=O=>{m(O.data.annotations),f.terminate(),P(!1),f.current=void 0}}};return _.debounce(n,100)},[]);React.useEffect(()=>{if(!(e==null?void 0:e.store))return;const n=e.store.getHighlightAttribute(c!=null?c:""),l=e==null?void 0:e.getColorFromConfig(c!=null?c:"");C(n.flat(),l.stroke)},[c,e]),React.useEffect(()=>{if(e){const n=({newAttribute:l})=>{const i=e==null?void 0:e.getColorFromConfig(l);i&&m(v.map(a=>__spreadProps(__spreadValues({},a),{defaultRGBA:i.stroke})))};return e.on("updateDefaultAttribute",n),()=>{e.unbind("updateDefaultAttribute",n)}}},[e,v]),React.useEffect(()=>{if(e){const n=l=>{if(l.cacheSegData){const{cacheSegData:i}=l;if(i==null?void 0:i.indexes){const a=e.getColorFromConfig(i.attribute);C(i==null?void 0:i.indexes,a.stroke)}}else m([])};return e.on("syncPointCloudStatus",n),e.on("loadPCDFileEnd",h),()=>{e.unbind("syncPointCloudStatus",n),e.unbind("loadPCDFileEnd",h)}}},[e,u,x]);const E=n=>{y({path:t,imgNode:n}),d.current={width:n.width,height:n.height},h()};return React__default.default.createElement("div",{key:t,style:{position:"relative"},ref:w},React__default.default.createElement(index,{title:s.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF",position:"absolute",top:10,left:10,zIndex:1}}),React__default.default.createElement(antd.Spin,{spinning:D,delay:1e3},React__default.default.createElement(index$1,{size:{width:300,height:200},key:t,src:r,fallbackSrc:o,annotations:v,afterImgOnLoad:E})))},PointCloudSegment2DView=({currentData:t,highlightAttribute:r})=>{var o;const s=(o=t.mappingImgList)!=null?o:[];return(s==null?void 0:s.length)>0?React__default.default.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},s==null?void 0:s.map((u,c)=>{var e;return u.calib&&React__default.default.createElement(PointCloudSegment2DSingleView,{key:u.path+c,path:u.path,url:u.url,fallbackUrl:(e=u.fallbackUrl)!=null?e:"",calib:u.calib,pcdUrl:t.url,highlightAttribute:r})})):null};var PointCloudSegment2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudSegment2DView);module.exports=PointCloudSegment2DView$1;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),ahooks=require("ahooks"),PointCloudContext=require("../PointCloudContext.js"),icon_link=require("../../../assets/annotation/icon_link.svg.js"),icon_unlink=require("../../../assets/annotation/icon_unlink.svg.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const iconSize={width:16,height:16},useDataLinkSwitch=e=>{e.imageName||console.warn("missing imageName");const[n,l]=React.useState(!0),r=React.useRef(e.imageName);r.current=e.imageName;const{unlinkImageItems:c,addRectFromPointCloudBoxByImageName:d,removeRectByPointCloudBoxId:m}=React.useContext(PointCloudContext.PointCloudContext),g=ahooks.useLatest(d),f=ahooks.useLatest(m),i=React.useCallback(t=>{const a=r.current;if(!a){console.warn("invalid image name");return}l(t),t?f.current(a):g.current(a)},[]),u=React.useCallback(()=>{i(!n)},[i,n]),h=React.useMemo(()=>{var t;if(!e.is2DView)return null;const o={zIndex:(t=e.zIndex)!=null?t:999,position:"absolute",top:16,right:16+28+12,background:"rgba(0, 0, 0, 0.74)",color:"white",borderRadius:2,padding:6,display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,cursor:"pointer"};return React__default.default.createElement("div",{style:o,onClick:u},n&&React__default.default.createElement("img",{src:icon_link,style:iconSize}),!n&&React__default.default.createElement("img",{src:icon_unlink,style:iconSize}))},[n,e.is2DView,e.zIndex,u]),s=React.useCallback(()=>{if(!e.is2DView)return;const t=r.current;if(!t){console.warn("invalid image name");return}const o=new Set(c).has(t)===!1;i(o)},[e.is2DView,c,i]);return React.useEffect(()=>{s()},[s]),{rendered:h,isLinking:n,swapSwitch:i,syncIsLinking:s}};module.exports=useDataLinkSwitch;
1
+ "use strict";var React=require("react"),ahooks=require("ahooks"),PointCloudContext=require("../PointCloudContext.js"),icon_link=require("../../../assets/annotation/icon_link.svg.js"),icon_unlink=require("../../../assets/annotation/icon_unlink.svg.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const iconSize={width:16,height:16},useDataLinkSwitch=e=>{e.imageName||console.warn("missing imageName");const[t,l]=React.useState(!0),r=React.useRef(e.imageName);r.current=e.imageName;const{unlinkImageItems:c,addRectFromPointCloudBoxByImageName:d,removeRectByPointCloudBoxId:m}=React.useContext(PointCloudContext.PointCloudContext),g=ahooks.useLatest(d),f=ahooks.useLatest(m),i=React.useCallback(n=>{const a=r.current;if(!a){console.warn("invalid image name");return}l(n),n?f.current(a):g.current(a)},[]),u=React.useCallback(()=>{i(!t)},[i,t]),w=React.useMemo(()=>{var n;if(!e.is2DView||e.is2DView||!e.is2DView)return null;const o={zIndex:(n=e.zIndex)!=null?n:999,position:"absolute",top:16,right:16+28+12,background:"rgba(0, 0, 0, 0.74)",color:"white",borderRadius:2,padding:6,display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,cursor:"pointer"};return React__default.default.createElement("div",{style:o,onClick:u},t&&React__default.default.createElement("img",{src:icon_link,style:iconSize}),!t&&React__default.default.createElement("img",{src:icon_unlink,style:iconSize}))},[t,e.is2DView,e.zIndex,u]),s=React.useCallback(()=>{if(!e.is2DView)return;const n=r.current;if(!n){console.warn("invalid image name");return}const o=new Set(c).has(n)===!1;i(o)},[e.is2DView,c,i]);return React.useEffect(()=>{s()},[s]),{rendered:w,isLinking:t,swapSwitch:i,syncIsLinking:s}};module.exports=useDataLinkSwitch;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),__async=(s,r,t)=>new Promise((u,a)=>{var e=i=>{try{n(t.next(i))}catch(l){a(l)}},d=i=>{try{n(t.throw(i))}catch(l){a(l)}},n=i=>i.done?u(i.value):Promise.resolve(i.value).then(e,d);n((t=t.apply(s,r)).next())});const useHighlight=({currentData:s})=>{var r;const{mainViewInstance:t,topViewInstance:u,pointCloudBoxList:a,highlight2DDataList:e,setHighlight2DDataList:d}=React.useContext(PointCloudContext.PointCloudContext),n=(r=s==null?void 0:s.mappingImgList)!=null?r:[],i=(o,h)=>__async(void 0,null,function*(){var p;let g=[...e];if(e.find(c=>c.url===o)?g=e.filter(c=>c.url!==o):g.push({url:o,calib:h}),d(g),!t||(n==null?void 0:n.length)===0)return;const v=t.pointCloudObject;if(!v)return;const f=yield t.getHighlightIndexByMappingImgList({mappingImgList:g,points:v.geometry.attributes.position.array}),C=yield t.highlightOriginPointCloud(a,f);C&&((p=u==null?void 0:u.pointCloudInstance)==null||p.updateColor(C))}),l=React.useCallback(o=>e.findIndex(h=>h.url===o)>=0,[e]);return{toggle2dVisible:i,isHighlightVisible:l}};exports.useHighlight=useHighlight;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),__async=(s,r,t)=>new Promise((u,a)=>{var e=i=>{try{n(t.next(i))}catch(l){a(l)}},d=i=>{try{n(t.throw(i))}catch(l){a(l)}},n=i=>i.done?u(i.value):Promise.resolve(i.value).then(e,d);n((t=t.apply(s,r)).next())});const useHighlight=({currentData:s})=>{var r;const{mainViewInstance:t,topViewInstance:u,pointCloudBoxList:a,highlight2DDataList:e,setHighlight2DDataList:d}=React.useContext(PointCloudContext.PointCloudContext),n=(r=s==null?void 0:s.mappingImgList)!=null?r:[],i=(o,h,f)=>__async(void 0,null,function*(){var p;let g=[...e];if(e.find(c=>c.url===o)?g=e.filter(c=>c.url!==o):g.push({url:o,fallbackUrl:h,calib:f}),d(g),!t||(n==null?void 0:n.length)===0)return;const v=t.pointCloudObject;if(!v)return;const m=yield t.getHighlightIndexByMappingImgList({mappingImgList:g,points:v.geometry.attributes.position.array}),C=yield t.highlightOriginPointCloud(a,m);C&&((p=u==null?void 0:u.pointCloudInstance)==null||p.updateColor(C))}),l=React.useCallback(o=>e.findIndex(h=>h.url===o)>=0,[e]);return{toggle2dVisible:i,isHighlightVisible:l}};exports.useHighlight=useHighlight;
@@ -23,6 +23,7 @@ type UnlinkImageItem = string;
23
23
  type AttrPanelLayout = '' | 'left' | 'right';
24
24
  interface IHighlight2DData {
25
25
  url: string;
26
+ fallbackUrl: string;
26
27
  calib?: ICalib;
27
28
  }
28
29
  export interface IPointCloudContext extends IPointCloudContextInstances, IPointCloudStatus, IPointCloudSegment {
@@ -6,7 +6,7 @@
6
6
  import { IAnnotationStateProps } from '../../../store/annotation/map';
7
7
  import { ICalib } from '@labelbee/lb-utils';
8
8
  declare const useHighlight: ({ currentData }: Partial<IAnnotationStateProps>) => {
9
- toggle2dVisible: (url: string, calib?: ICalib) => Promise<void>;
9
+ toggle2dVisible: (url: string, fallbackUrl: string, calib?: ICalib) => Promise<void>;
10
10
  isHighlightVisible: (url: string) => boolean;
11
11
  };
12
12
  export { useHighlight };
@@ -1 +1 @@
1
- import{useMemoizedFn as _,useLatest as Q}from"ahooks";import{Spin as W}from"antd/es";import h,{useContext as X,useRef as N,useState as Y,useMemo as Z,useEffect as a}from"react";import{connect as tt}from"react-redux";import{usePointCloudViews as et}from"../pointCloudView/hooks/usePointCloudViews.js";import{PointCloudContext as rt}from"../pointCloudView/PointCloudContext.js";import{a2MapStateToProps as nt}from"../../store/annotation/map.js";import{LabelBeeContext as ot}from"../../store/ctx.js";import{PointCloud2DRectOperation as it,ImgUtils as ut}from"@labelbee/lb-annotation";var ct=Object.defineProperty,lt=Object.defineProperties,at=Object.getOwnPropertyDescriptors,M=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable,z=(c,i,n)=>i in c?ct(c,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):c[i]=n,s=(c,i)=>{for(var n in i||(i={}))st.call(i,n)&&z(c,n,i[n]);if(M)for(var n of M(i))dt.call(i,n)&&z(c,n,i[n]);return c},p=(c,i)=>lt(c,at(i));const pt=c=>{var i;const{mappingData:n,size:f,config:R,checkMode:F,afterImgOnLoad:U,shouldExcludePointCloudBoxListUpdate:m}=c,g=(i=n==null?void 0:n.url)!=null?i:"",{pointCloudBoxList:D,setPointCloudResult:x,defaultAttribute:b,rectList:w,addRectIn2DView:k,updateRectIn2DView:L,removeRectIn2DView:J}=X(rt),{update2DViewRect:T,remove2DViewRect:$}=et(),P=h.useRef(null),r=N(null),V=_(T),y=_($),C=N(null),[q,S]=Y(!0),I=Z(()=>w==null?void 0:w.filter(t=>t.imageName===(n==null?void 0:n.path)),[n==null?void 0:n.path,w]),v=Q(n==null?void 0:n.path),j=t=>{const{boxID:o}=t;if(!m&&o){const e=V==null?void 0:V(t);C.current=e,x(e);return}L(t,!0)},B=t=>{v.current&&k(p(s({},t),{imageName:v.current}))},E=t=>{if(!m){const o=t.find(e=>e.boxID);if(o){const e=y==null?void 0:y(o);C.current=e,x(e),d();return}}J(t)},G=_(()=>{let t=[];return D.forEach(o=>{const{rects:e=[],id:u,attribute:l,trackID:O}=o,A=e.find(K=>K.imageName===v.current),H=u+"_"+v.current;A&&(t=[...t,p(s({},A),{boxID:u,id:H,attribute:l,order:O})])}),t}),d=_(()=>{var t,o,e;const u=m?[]:G(),l=(t=r.current)==null?void 0:t.selectedRectID;(o=r.current)==null||o.setResult([...u,...I]),l&&((e=r.current)==null||e.setSelectedRectID(l))});return a(()=>{if(P.current){const t=new it({container:P.current,size:f,config:p(s({},R),{isShowOrder:!0,attributeConfigurable:!0}),checkMode:F});return r.current=t,r.current.init(),r.current.on("updateDragResult",j),r.current.on("afterAddingDrawingRect",B),r.current.on("deleteSelectedRects",E),()=>{var o,e,u,l;(o=r.current)==null||o.unbind("updateDragResult",j),(e=r.current)==null||e.unbind("afterAddingDrawingRect",B),(u=r.current)==null||u.unbind("deleteSelectedRects",E),(l=r.current)==null||l.destroy()}}},[]),a(()=>{S(!0),r.current&&g&&ut.load(g).then(t=>{r.current.setImgNode(t),U(t),S(!1)})},[g]),a(()=>{var t;(t=r.current)==null||t.setSize(f)},[f]),a(()=>{D!==C.current&&d()},[D]),a(()=>{var t,o,e;const u=I.find(l=>l.id===r.current.selectedRectID);(o=(t=r.current)==null?void 0:t.setDefaultAttribute)==null||o.call(t,b),u&&L(p(s({},(e=r.current)==null?void 0:e.selectedRect),{attribute:b})),d()},[b]),a(()=>{d()},[I]),a(()=>{d()},[m]),a(()=>{var t,o,e,u;const l=(o=(t=r.current)==null?void 0:t.config)!=null?o:{},O=p(s({},l),{attributeList:(e=R.attributeList)!=null?e:[]});(u=r.current)==null||u.setConfig(JSON.stringify(O))},[R.attributeList]),h.createElement(W,{spinning:q},h.createElement("div",{ref:P,style:s({position:"relative"},f)}))};var ft=tt(nt,null,null,{context:ot})(pt);export{ft as default};
1
+ import{useMemoizedFn as w,useLatest as Y}from"ahooks";import{Spin as Z}from"antd/es";import V,{useContext as ee,useRef as z,useState as te,useMemo as re,useEffect as d}from"react";import{connect as ne}from"react-redux";import{usePointCloudViews as oe}from"../pointCloudView/hooks/usePointCloudViews.js";import{PointCloudContext as ie}from"../pointCloudView/PointCloudContext.js";import{a2MapStateToProps as le}from"../../store/annotation/map.js";import{LabelBeeContext as ce}from"../../store/ctx.js";import{PointCloud2DRectOperation as ue,ImgUtils as ae}from"@labelbee/lb-annotation";var se=Object.defineProperty,de=Object.defineProperties,fe=Object.getOwnPropertyDescriptors,F=Object.getOwnPropertySymbols,pe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable,J=(c,i,l)=>i in c?se(c,i,{enumerable:!0,configurable:!0,writable:!0,value:l}):c[i]=l,m=(c,i)=>{for(var l in i||(i={}))pe.call(i,l)&&J(c,l,i[l]);if(F)for(var l of F(i))me.call(i,l)&&J(c,l,i[l]);return c},R=(c,i)=>de(c,fe(i)),T=(c,i,l)=>new Promise((u,f)=>{var v=a=>{try{_(l.next(a))}catch(p){f(p)}},P=a=>{try{_(l.throw(a))}catch(p){f(p)}},_=a=>a.done?u(a.value):Promise.resolve(a.value).then(v,P);_((l=l.apply(c,i)).next())});const ve=c=>{var i,l;const{mappingData:u,size:f,config:v,checkMode:P,afterImgOnLoad:_,shouldExcludePointCloudBoxListUpdate:a}=c,p=(i=u==null?void 0:u.url)!=null?i:"",b=(l=u==null?void 0:u.fallbackUrl)!=null?l:"",{pointCloudBoxList:I,setPointCloudResult:S,defaultAttribute:h,rectList:C,addRectIn2DView:$,updateRectIn2DView:N,removeRectIn2DView:q}=ee(ie),{update2DViewRect:G,remove2DViewRect:H}=oe(),y=V.useRef(null),n=z(null),j=w(G),B=w(H),O=z(null),[K,E]=te(!0),x=re(()=>C==null?void 0:C.filter(e=>e.imageName===(u==null?void 0:u.path)),[u==null?void 0:u.path,C]),D=Y(u==null?void 0:u.path),U=e=>{const{boxID:o}=e;if(!a&&o){const t=j==null?void 0:j(e);O.current=t,S(t);return}N(e,!0)},A=e=>{D.current&&$(R(m({},e),{imageName:D.current}))},k=e=>{if(!a){const o=e.find(t=>t.boxID);if(o){const t=B==null?void 0:B(o);O.current=t,S(t),g();return}}q(e)},Q=w(()=>{let e=[];return I.forEach(o=>{const{rects:t=[],id:r,attribute:s,trackID:L}=o,M=t.find(X=>X.imageName===D.current),W=r+"_"+D.current;M&&(e=[...e,R(m({},M),{boxID:r,id:W,attribute:s,order:L})])}),e}),g=w(()=>{var e,o,t;const r=a?[]:Q(),s=(e=n.current)==null?void 0:e.selectedRectID;(o=n.current)==null||o.setResult([...r,...x]),s&&((t=n.current)==null||t.setSelectedRectID(s))});return d(()=>{if(y.current){const e=new ue({container:y.current,size:f,config:R(m({},v),{isShowOrder:!0,attributeConfigurable:!0}),checkMode:P});return n.current=e,n.current.init(),n.current.on("updateDragResult",U),n.current.on("afterAddingDrawingRect",A),n.current.on("deleteSelectedRects",k),()=>{var o,t,r,s;(o=n.current)==null||o.unbind("updateDragResult",U),(t=n.current)==null||t.unbind("afterAddingDrawingRect",A),(r=n.current)==null||r.unbind("deleteSelectedRects",k),(s=n.current)==null||s.destroy()}}},[]),d(()=>{const e=t=>T(void 0,null,function*(){try{return yield ae.load(t)}catch(r){return console.error("Error loading image:",r),null}}),o=()=>T(void 0,null,function*(){var t;E(!0);let r=yield e(p);!r&&b&&(r=yield e(b)),r&&((t=n.current)==null||t.setImgNode(r),_(r)),E(!1)});n.current&&(p||b)&&o()},[p,b]),d(()=>{var e;(e=n.current)==null||e.setSize(f)},[f]),d(()=>{I!==O.current&&g()},[I]),d(()=>{var e,o,t;const r=x.find(s=>s.id===n.current.selectedRectID);(o=(e=n.current)==null?void 0:e.setDefaultAttribute)==null||o.call(e,h),r&&N(R(m({},(t=n.current)==null?void 0:t.selectedRect),{attribute:h})),g()},[h]),d(()=>{g()},[x]),d(()=>{g()},[a]),d(()=>{var e,o,t,r;const s=(o=(e=n.current)==null?void 0:e.config)!=null?o:{},L=R(m({},s),{attributeList:(t=v.attributeList)!=null?t:[]});(r=n.current)==null||r.setConfig(JSON.stringify(L))},[v.attributeList]),V.createElement(Z,{spinning:K},V.createElement("div",{ref:y,style:m({position:"relative"},f)}))};var _e=ne(le,null,null,{context:ce})(ve);export{_e as default};
@@ -1 +1 @@
1
- import{getClassName as N}from"../../utils/dom.js";import l,{useRef as P,useState as A,useContext as U,useMemo as F,useCallback as M,useEffect as T}from"react";import q from"../AnnotationView/index.js";import w from"../../hooks/useSize.js";import{useSingleBox as G}from"./hooks/useSingleBox.js";import{useHighlight as J}from"./hooks/useHighlight.js";import K from"./components/HighlightVisible/index.js";import{PointCloudContext as Q}from"./PointCloudContext.js";import W from"./hooks/useDataLinkSwitch.js";import X from"../pointCloud2DRectOperationView/index.js";var Y=(o,r,e)=>new Promise((s,c)=>{var f=t=>{try{i(e.next(t))}catch(n){c(n)}},u=t=>{try{i(e.throw(t))}catch(n){c(n)}},i=t=>t.done?s(t.value):Promise.resolve(t.value).then(f,u);i((e=e.apply(o,r)).next())});const Z=({view2dData:o,setSelectedID:r,currentData:e,showEnlarge:s,checkMode:c=!1,measureVisible:f})=>{var u,i;const t=P(null),n=P(),{selectedBox:d}=G(),g=w(t),{url:x,calib:k,path:j}=o,{toggle2dVisible:y,isHighlightVisible:_}=J({currentData:e}),[v,b]=A(!1),{cuboidBoxIn2DView:p,cacheImageNodeSize:z}=U(Q),B=!o,I=F(()=>({zIndex:s?-1:101,is2DView:!p,imageName:o.path}),[s,p,o.path]),{rendered:O,isLinking:R}=W(I),C=m=>{h(),z({path:j,imgNode:m})},h=M(()=>{var m,L;const S=(m=n.current)==null?void 0:m.toolInstance;if(r(""),!d||!S)return;const a=o.annotations.find(H=>H.annotation.id===d.info.id);let V="";a&&((L=a==null?void 0:a.annotation.pointList)==null?void 0:L.length)>0&&(S.focusPositionByPointList(a==null?void 0:a.annotation.pointList),V=d.info.id,r(V))},[d,n.current,o.annotations]);T(()=>{h()},[h]);const E=()=>Y(void 0,null,function*(){b(!0),yield y(x,k),b(!1)});return l.createElement("div",{className:N("point-cloud-2d-image"),ref:t},p?l.createElement(q,{src:(u=o==null?void 0:o.url)!=null?u:"",fallbackSrc:(i=o==null?void 0:o.fallbackUrl)!=null?i:"",annotations:o.annotations,size:g,ref:n,globalStyle:{display:B?"none":"block"},afterImgOnLoad:C,zoomInfo:{min:.01,max:1e3,ratio:.4},measureVisible:f}):l.createElement(l.Fragment,null,l.createElement(X,{shouldExcludePointCloudBoxListUpdate:!R,mappingData:o,size:g,checkMode:c,afterImgOnLoad:C}),O),k&&l.createElement(K,{visible:_(x),onClick:E,loading:v,style:{position:"absolute",right:16,top:16,zIndex:s?-1:101}}))};export{Z as default};
1
+ import{getClassName as U}from"../../utils/dom.js";import l,{useRef as j,useState as A,useContext as F,useMemo as M,useCallback as T,useEffect as q}from"react";import w from"../AnnotationView/index.js";import G from"../../hooks/useSize.js";import{useSingleBox as J}from"./hooks/useSingleBox.js";import{useHighlight as K}from"./hooks/useHighlight.js";import Q from"./components/HighlightVisible/index.js";import{PointCloudContext as W}from"./PointCloudContext.js";import X from"./hooks/useDataLinkSwitch.js";import Y from"../pointCloud2DRectOperationView/index.js";var Z=(o,r,e)=>new Promise((s,c)=>{var f=t=>{try{i(e.next(t))}catch(n){c(n)}},u=t=>{try{i(e.throw(t))}catch(n){c(n)}},i=t=>t.done?s(t.value):Promise.resolve(t.value).then(f,u);i((e=e.apply(o,r)).next())});const $=({view2dData:o,setSelectedID:r,currentData:e,showEnlarge:s,checkMode:c=!1,measureVisible:f})=>{var u,i;const t=j(null),n=j(),{selectedBox:d}=J(),g=G(t),{url:k,fallbackUrl:x,calib:b,path:y}=o,{toggle2dVisible:_,isHighlightVisible:v}=K({currentData:e}),[z,C]=A(!1),{cuboidBoxIn2DView:p,cacheImageNodeSize:B}=F(W),I=!o,O=M(()=>({zIndex:s?-1:101,is2DView:!p,imageName:o.path}),[s,p,o.path]),{rendered:R,isLinking:E}=X(O),L=m=>{h(),B({path:y,imgNode:m})},h=T(()=>{var m,S;const V=(m=n.current)==null?void 0:m.toolInstance;if(r(""),!d||!V)return;const a=o.annotations.find(N=>N.annotation.id===d.info.id);let P="";a&&((S=a==null?void 0:a.annotation.pointList)==null?void 0:S.length)>0&&(V.focusPositionByPointList(a==null?void 0:a.annotation.pointList),P=d.info.id,r(P))},[d,n.current,o.annotations]);q(()=>{h()},[h]);const H=()=>Z(void 0,null,function*(){C(!0),yield _(k,x!=null?x:"",b),C(!1)});return l.createElement("div",{className:U("point-cloud-2d-image"),ref:t},p?l.createElement(w,{src:(u=o==null?void 0:o.url)!=null?u:"",fallbackSrc:(i=o==null?void 0:o.fallbackUrl)!=null?i:"",annotations:o.annotations,size:g,ref:n,globalStyle:{display:I?"none":"block"},afterImgOnLoad:L,zoomInfo:{min:.01,max:1e3,ratio:.4},measureVisible:f}):l.createElement(l.Fragment,null,l.createElement(Y,{shouldExcludePointCloudBoxListUpdate:!E,mappingData:o,size:g,checkMode:c,afterImgOnLoad:L}),R),b&&l.createElement(Q,{visible:v(k),onClick:H,loading:z,style:{position:"absolute",right:16,top:16,zIndex:s?-1:101}}))};export{$ as default};
@@ -1 +1 @@
1
- import{a2MapStateToProps as L}from"../../store/annotation/map.js";import{LabelBeeContext as z}from"../../store/ctx.js";import d,{useContext as R,useRef as f,useState as w,useEffect as g,useCallback as V,useMemo as B}from"react";import A from"../AnnotationView/index.js";import{connect as W}from"react-redux";import{PointCloudContext as T}from"./PointCloudContext.js";import G from"./components/TitleButton/index.js";import{Spin as H}from"antd";import N from"../../_virtual/highlightSegmentWorker.js";import{pointMappingLidar2image as Y}from"@labelbee/lb-annotation";import{debounce as $}from"lodash";var q=Object.defineProperty,J=Object.defineProperties,K=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,D=(t,o,n)=>o in t?q(t,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[o]=n,X=(t,o)=>{for(var n in o||(o={}))Q.call(o,n)&&D(t,n,o[n]);if(x)for(var n of x(o))U.call(o,n)&&D(t,n,o[n]);return t},Z=(t,o)=>J(t,K(o));const ee=({path:t,url:o,calib:n,pcdUrl:c,highlightAttribute:a})=>{const{ptSegmentInstance:e,cacheImageNodeSize:O,imageSizes:E}=R(T),F=f(null),m=f(0),v=f({}),u=f(),[h,P]=w([]),[I,C]=w(!1),b=f(void 0);g(()=>()=>{m.current=0,v.current={},u.current=void 0},[c]);const _=V(()=>{var r,l,i;if(m.current=m.current+1,m.current===2){const s=(r=e==null?void 0:e.store)==null?void 0:r.originPoints;if(!s||!u.current){console.error("cacheMappingPCD2Img Error",{path:t,points:s,filterSize:u.current});return}v.current=(i=(l=Y(s,n,u.current))==null?void 0:l.pcdMapping)!=null?i:{}}},[e]),S=B(()=>$((l,i)=>{var s,y;if(l&&u.current){b.current&&((y=(s=b.current)==null?void 0:s.terminate)==null||y.call(s));const k=v.current,p=new N;p.current=p,C(!0),p.postMessage({cacheMap:k,indexes:l,defaultRGBA:i}),p.onmessage=M=>{P(M.data.annotations),p.terminate(),C(!1),p.current=void 0}}},100),[]);g(()=>{if(!(e==null?void 0:e.store))return;const r=e.store.getHighlightAttribute(a!=null?a:""),l=e==null?void 0:e.getColorFromConfig(a!=null?a:"");S(r.flat(),l.stroke)},[a,e]),g(()=>{if(e){const r=({newAttribute:l})=>{const i=e==null?void 0:e.getColorFromConfig(l);i&&P(h.map(s=>Z(X({},s),{defaultRGBA:i.stroke})))};return e.on("updateDefaultAttribute",r),()=>{e.unbind("updateDefaultAttribute",r)}}},[e,h]),g(()=>{if(e){const r=l=>{if(l.cacheSegData){const{cacheSegData:i}=l;if(i==null?void 0:i.indexes){const s=e.getColorFromConfig(i.attribute);S(i==null?void 0:i.indexes,s.stroke)}}else P([])};return e.on("syncPointCloudStatus",r),e.on("loadPCDFileEnd",_),()=>{e.unbind("syncPointCloudStatus",r),e.unbind("loadPCDFileEnd",_)}}},[e,c,E]);const j=r=>{O({path:t,imgNode:r}),u.current={width:r.width,height:r.height},_()};return d.createElement("div",{key:t,style:{position:"relative"},ref:F},d.createElement(G,{title:n.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF",position:"absolute",top:10,left:10,zIndex:1}}),d.createElement(H,{spinning:I,delay:1e3},d.createElement(A,{size:{width:300,height:200},key:t,src:o,annotations:h,afterImgOnLoad:j})))},te=({currentData:t,highlightAttribute:o})=>{var n;const c=(n=t.mappingImgList)!=null?n:[];return(c==null?void 0:c.length)>0?d.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},c==null?void 0:c.map((a,e)=>a.calib&&d.createElement(ee,{key:a.path+e,path:a.path,url:a.url,calib:a.calib,pcdUrl:t.url,highlightAttribute:o}))):null};var oe=W(L,null,null,{context:z})(te);export{oe as default};
1
+ import{a2MapStateToProps as z}from"../../store/annotation/map.js";import{LabelBeeContext as R}from"../../store/ctx.js";import f,{useContext as V,useRef as m,useState as x,useEffect as v,useCallback as B,useMemo as A}from"react";import W from"../AnnotationView/index.js";import{connect as T}from"react-redux";import{PointCloudContext as U}from"./PointCloudContext.js";import G from"./components/TitleButton/index.js";import{Spin as H}from"antd";import N from"../../_virtual/highlightSegmentWorker.js";import{pointMappingLidar2image as Y}from"@labelbee/lb-annotation";import{debounce as $}from"lodash";var q=Object.defineProperty,J=Object.defineProperties,K=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,k=(t,o,n)=>o in t?q(t,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[o]=n,Z=(t,o)=>{for(var n in o||(o={}))Q.call(o,n)&&k(t,n,o[n]);if(D)for(var n of D(o))X.call(o,n)&&k(t,n,o[n]);return t},ee=(t,o)=>J(t,K(o));const te=({path:t,url:o,fallbackUrl:n,calib:c,pcdUrl:s,highlightAttribute:u})=>{const{ptSegmentInstance:e,cacheImageNodeSize:O,imageSizes:E}=V(U),F=m(null),g=m(0),h=m({}),p=m(),[P,_]=x([]),[I,C]=x(!1),S=m(void 0);v(()=>()=>{g.current=0,h.current={},p.current=void 0},[s]);const b=B(()=>{var r,l,i;if(g.current=g.current+1,g.current===2){const a=(r=e==null?void 0:e.store)==null?void 0:r.originPoints;if(!a||!p.current){console.error("cacheMappingPCD2Img Error",{path:t,points:a,filterSize:p.current});return}h.current=(i=(l=Y(a,c,p.current))==null?void 0:l.pcdMapping)!=null?i:{}}},[e]),y=A(()=>$((l,i)=>{var a,w;if(l&&p.current){S.current&&((w=(a=S.current)==null?void 0:a.terminate)==null||w.call(a));const M=h.current,d=new N;d.current=d,C(!0),d.postMessage({cacheMap:M,indexes:l,defaultRGBA:i}),d.onmessage=L=>{_(L.data.annotations),d.terminate(),C(!1),d.current=void 0}}},100),[]);v(()=>{if(!(e==null?void 0:e.store))return;const r=e.store.getHighlightAttribute(u!=null?u:""),l=e==null?void 0:e.getColorFromConfig(u!=null?u:"");y(r.flat(),l.stroke)},[u,e]),v(()=>{if(e){const r=({newAttribute:l})=>{const i=e==null?void 0:e.getColorFromConfig(l);i&&_(P.map(a=>ee(Z({},a),{defaultRGBA:i.stroke})))};return e.on("updateDefaultAttribute",r),()=>{e.unbind("updateDefaultAttribute",r)}}},[e,P]),v(()=>{if(e){const r=l=>{if(l.cacheSegData){const{cacheSegData:i}=l;if(i==null?void 0:i.indexes){const a=e.getColorFromConfig(i.attribute);y(i==null?void 0:i.indexes,a.stroke)}}else _([])};return e.on("syncPointCloudStatus",r),e.on("loadPCDFileEnd",b),()=>{e.unbind("syncPointCloudStatus",r),e.unbind("loadPCDFileEnd",b)}}},[e,s,E]);const j=r=>{O({path:t,imgNode:r}),p.current={width:r.width,height:r.height},b()};return f.createElement("div",{key:t,style:{position:"relative"},ref:F},f.createElement(G,{title:c.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF",position:"absolute",top:10,left:10,zIndex:1}}),f.createElement(H,{spinning:I,delay:1e3},f.createElement(W,{size:{width:300,height:200},key:t,src:o,fallbackSrc:n,annotations:P,afterImgOnLoad:j})))},oe=({currentData:t,highlightAttribute:o})=>{var n;const c=(n=t.mappingImgList)!=null?n:[];return(c==null?void 0:c.length)>0?f.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},c==null?void 0:c.map((s,u)=>{var e;return s.calib&&f.createElement(te,{key:s.path+u,path:s.path,url:s.url,fallbackUrl:(e=s.fallbackUrl)!=null?e:"",calib:s.calib,pcdUrl:t.url,highlightAttribute:o})})):null};var ne=T(z,null,null,{context:R})(oe);export{ne as default};
@@ -1 +1 @@
1
- import c,{useState as C,useRef as v,useContext as y,useCallback as m,useMemo as N,useEffect as R}from"react";import{useLatest as d}from"ahooks";import{PointCloudContext as S}from"../PointCloudContext.js";import b from"../../../assets/annotation/icon_link.svg.js";import z from"../../../assets/annotation/icon_unlink.svg.js";const g={width:16,height:16},D=e=>{e.imageName||console.warn("missing imageName");const[n,f]=C(!0),s=v(e.imageName);s.current=e.imageName;const{unlinkImageItems:l,addRectFromPointCloudBoxByImageName:w,removeRectByPointCloudBoxId:h}=y(S),I=d(w),k=d(h),i=m(t=>{const o=s.current;if(!o){console.warn("invalid image name");return}f(t),t?k.current(o):I.current(o)},[]),u=m(()=>{i(!n)},[i,n]),x=N(()=>{var t;if(!e.is2DView)return null;const r={zIndex:(t=e.zIndex)!=null?t:999,position:"absolute",top:16,right:16+28+12,background:"rgba(0, 0, 0, 0.74)",color:"white",borderRadius:2,padding:6,display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,cursor:"pointer"};return c.createElement("div",{style:r,onClick:u},n&&c.createElement("img",{src:b,style:g}),!n&&c.createElement("img",{src:z,style:g}))},[n,e.is2DView,e.zIndex,u]),a=m(()=>{if(!e.is2DView)return;const t=s.current;if(!t){console.warn("invalid image name");return}const r=new Set(l).has(t)===!1;i(r)},[e.is2DView,l,i]);return R(()=>{a()},[a]),{rendered:x,isLinking:n,swapSwitch:i,syncIsLinking:a}};export{D as default};
1
+ import c,{useState as C,useRef as v,useContext as y,useCallback as m,useMemo as N,useEffect as R}from"react";import{useLatest as d}from"ahooks";import{PointCloudContext as D}from"../PointCloudContext.js";import S from"../../../assets/annotation/icon_link.svg.js";import V from"../../../assets/annotation/icon_unlink.svg.js";const g={width:16,height:16},b=e=>{e.imageName||console.warn("missing imageName");const[t,f]=C(!0),r=v(e.imageName);r.current=e.imageName;const{unlinkImageItems:l,addRectFromPointCloudBoxByImageName:w,removeRectByPointCloudBoxId:h}=y(D),I=d(w),k=d(h),i=m(n=>{const s=r.current;if(!s){console.warn("invalid image name");return}f(n),n?k.current(s):I.current(s)},[]),u=m(()=>{i(!t)},[i,t]),x=N(()=>{var n;if(!e.is2DView||e.is2DView||!e.is2DView)return null;const o={zIndex:(n=e.zIndex)!=null?n:999,position:"absolute",top:16,right:16+28+12,background:"rgba(0, 0, 0, 0.74)",color:"white",borderRadius:2,padding:6,display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,cursor:"pointer"};return c.createElement("div",{style:o,onClick:u},t&&c.createElement("img",{src:S,style:g}),!t&&c.createElement("img",{src:V,style:g}))},[t,e.is2DView,e.zIndex,u]),a=m(()=>{if(!e.is2DView)return;const n=r.current;if(!n){console.warn("invalid image name");return}const o=new Set(l).has(n)===!1;i(o)},[e.is2DView,l,i]);return R(()=>{a()},[a]),{rendered:x,isLinking:t,swapSwitch:i,syncIsLinking:a}};export{b as default};
@@ -1 +1 @@
1
- import{useContext as C,useCallback as I}from"react";import{PointCloudContext as y}from"../PointCloudContext.js";var x=(s,r,t)=>new Promise((a,u)=>{var n=i=>{try{e(t.next(i))}catch(l){u(l)}},h=i=>{try{e(t.throw(i))}catch(l){u(l)}},e=i=>i.done?a(i.value):Promise.resolve(i.value).then(n,h);e((t=t.apply(s,r)).next())});const L=({currentData:s})=>{var r;const{mainViewInstance:t,topViewInstance:a,pointCloudBoxList:u,highlight2DDataList:n,setHighlight2DDataList:h}=C(y),e=(r=s==null?void 0:s.mappingImgList)!=null?r:[],i=(o,d)=>x(void 0,null,function*(){var c;let g=[...n];if(n.find(p=>p.url===o)?g=n.filter(p=>p.url!==o):g.push({url:o,calib:d}),h(g),!t||(e==null?void 0:e.length)===0)return;const m=t.pointCloudObject;if(!m)return;const f=yield t.getHighlightIndexByMappingImgList({mappingImgList:g,points:m.geometry.attributes.position.array}),v=yield t.highlightOriginPointCloud(u,f);v&&((c=a==null?void 0:a.pointCloudInstance)==null||c.updateColor(v))}),l=I(o=>n.findIndex(d=>d.url===o)>=0,[n]);return{toggle2dVisible:i,isHighlightVisible:l}};export{L as useHighlight};
1
+ import{useContext as I,useCallback as y}from"react";import{PointCloudContext as x}from"../PointCloudContext.js";var L=(s,r,t)=>new Promise((a,u)=>{var n=i=>{try{e(t.next(i))}catch(l){u(l)}},h=i=>{try{e(t.throw(i))}catch(l){u(l)}},e=i=>i.done?a(i.value):Promise.resolve(i.value).then(n,h);e((t=t.apply(s,r)).next())});const b=({currentData:s})=>{var r;const{mainViewInstance:t,topViewInstance:a,pointCloudBoxList:u,highlight2DDataList:n,setHighlight2DDataList:h}=I(x),e=(r=s==null?void 0:s.mappingImgList)!=null?r:[],i=(o,d,f)=>L(void 0,null,function*(){var c;let g=[...n];if(n.find(p=>p.url===o)?g=n.filter(p=>p.url!==o):g.push({url:o,fallbackUrl:d,calib:f}),h(g),!t||(e==null?void 0:e.length)===0)return;const m=t.pointCloudObject;if(!m)return;const C=yield t.getHighlightIndexByMappingImgList({mappingImgList:g,points:m.geometry.attributes.position.array}),v=yield t.highlightOriginPointCloud(u,C);v&&((c=a==null?void 0:a.pointCloudInstance)==null||c.updateColor(v))}),l=y(o=>n.findIndex(d=>d.url===o)>=0,[n]);return{toggle2dVisible:i,isHighlightVisible:l}};export{b as useHighlight};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.23.0-alpha.45",
3
+ "version": "1.23.0-alpha.47",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@ant-design/icons": "^4.6.2",
46
- "@labelbee/lb-annotation": "1.27.0-alpha.22",
46
+ "@labelbee/lb-annotation": "1.27.0-alpha.23",
47
47
  "@labelbee/lb-utils": "1.19.0-alpha.16",
48
48
  "@labelbee/wavesurfer": "1.0.0",
49
49
  "@types/react-dom": "^18.2.7",