@labelbee/lb-components 1.23.0-alpha.43 → 1.23.0-alpha.44

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 React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),es=require("antd/es"),useRefCache=require("../../hooks/useRefCache.js"),index=require("../measureCanvas/index.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,r,a)=>r in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,__spreadValues=(e,r)=>{for(var a in r||(r={}))__hasOwnProp.call(r,a)&&__defNormalProp(e,a,r[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(r))__propIsEnum.call(r,a)&&__defNormalProp(e,a,r[a]);return e};const DEFAULT_SIZE={width:455,height:100},sizeInitialized=e=>{if(!e)return DEFAULT_SIZE;if(e.width&&e.height)return e;const r=__spreadValues({},e);return r.width||(r.width=DEFAULT_SIZE.width),r.height||(r.height=DEFAULT_SIZE.height),r},AnnotationView=(e,r)=>{var a,_;const{src:p,annotations:c=[],style:y={stroke:"blue",thickness:3},zoomChange:d,backgroundStyle:I={},onChange:v,showLoading:R=!1,globalStyle:z,afterImgOnLoad:O,measureVisible:h}=e,s=sizeInitialized(e.size),[E,g]=React.useState(!1),m=React.useRef(null),n=React.useRef(),w=useRefCache(O),l=React.useRef([]),f=React.useRef(!0);React.useImperativeHandle(r,()=>{const t=n.current;return t?{zoomIn:()=>t.zoomChanged(!0),zoomOut:()=>t.zoomChanged(!1),initImgPos:()=>t.initImgPos(),toolInstance:t}:{}},[n.current]),React.useEffect(()=>(m.current&&(n.current=new lbAnnotation.ViewOperation({container:m.current,size:s,style:y,annotations:c,config:"{}",zoomInfo:e.zoomInfo,staticMode:e.staticMode}),n.current.init()),()=>{var t;(t=n.current)==null||t.destroy()}),[h]),React.useEffect(()=>{var t;n.current&&(g(!0),(t=n.current)==null||t.setLoading(!0),lbAnnotation.ImgUtils.load(p).then(i=>{var o,u;(o=n.current)==null||o.setLoading(!1),g(!1),(u=n.current)==null||u.setImgNode(i),w.current&&w.current(i)}).catch(()=>{var i;(i=n.current)==null||i.setLoading(!1),g(!1)}))},[p,h]),React.useEffect(()=>{if(f.current===!1){l.current.push(c);return}const t=()=>{f.current=!0,l.current=[]},i=()=>{var o;const u=l.current.length;if(u>0){const L=l.current[u-1];l.current=[],(o=n.current)==null||o.updateData(L).then(i).catch(t)}else f.current=!0};n.current&&(f.current=!1,n.current.updateData(c).then(i).catch(t))},[c]),React.useEffect(()=>{const t=n.current;(t==null?void 0:t.setSize)&&(t.setSize(s),t.initPosition())},[(a=e.size)==null?void 0:a.width,(_=e.size)==null?void 0:_.height]),React.useEffect(()=>{var t,i;return n.current&&((t=n.current)==null||t.on("onChange",(...o)=>{v==null||v.apply(null,o)}),(i=n.current)==null||i.on("renderZoom",o=>{d&&d(o)})),()=>{var o,u;(o=n.current)==null||o.unbindAll("onChange"),(u=n.current)==null||u.unbindAll("renderZoom")}},[d,v]);const P=React__default.default.createElement("div",{ref:m,style:__spreadValues(__spreadValues({position:"relative"},s),I)}),{imgNode:b,zoom:S,currentPos:C}=n.current||{};return React__default.default.createElement(es.Spin,{spinning:R||E,delay:300,style:z},h&&b?React__default.default.createElement(index,{size:s,imgNode:b,zoom:S,currentPos:C}):P)};var AnnotationView$1=React__default.default.forwardRef(AnnotationView);module.exports=AnnotationView$1;
1
+ "use strict";var React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),es=require("antd/es"),useRefCache=require("../../hooks/useRefCache.js"),index=require("../measureCanvas/index.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,n,a)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,__spreadValues=(e,n)=>{for(var a in n||(n={}))__hasOwnProp.call(n,a)&&__defNormalProp(e,a,n[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(n))__propIsEnum.call(n,a)&&__defNormalProp(e,a,n[a]);return e},__async=(e,n,a)=>new Promise((m,d)=>{var c=l=>{try{f(a.next(l))}catch(v){d(v)}},s=l=>{try{f(a.throw(l))}catch(v){d(v)}},f=l=>l.done?m(l.value):Promise.resolve(l.value).then(c,s);f((a=a.apply(e,n)).next())});const DEFAULT_SIZE={width:455,height:100},sizeInitialized=e=>{if(!e)return DEFAULT_SIZE;if(e.width&&e.height)return e;const n=__spreadValues({},e);return n.width||(n.width=DEFAULT_SIZE.width),n.height||(n.height=DEFAULT_SIZE.height),n},AnnotationView=(e,n)=>{var a,m;const{src:d,fallbackSrc:c,annotations:s=[],style:f={stroke:"blue",thickness:3},zoomChange:l,backgroundStyle:v={},onChange:b,showLoading:P=!1,globalStyle:S,afterImgOnLoad:C,measureVisible:p}=e,g=sizeInitialized(e.size),[A,E]=React.useState(!1),w=React.useRef(null),r=React.useRef(),R=useRefCache(C),h=React.useRef([]),_=React.useRef(!0);React.useImperativeHandle(n,()=>{const t=r.current;return t?{zoomIn:()=>t.zoomChanged(!0),zoomOut:()=>t.zoomChanged(!1),initImgPos:()=>t.initImgPos(),toolInstance:t}:{}},[r.current]),React.useEffect(()=>(w.current&&(r.current=new lbAnnotation.ViewOperation({container:w.current,size:g,style:f,annotations:s,config:"{}",zoomInfo:e.zoomInfo,staticMode:e.staticMode}),r.current.init()),()=>{var t;(t=r.current)==null||t.destroy()}),[p]);const I=React.useCallback(t=>__async(void 0,null,function*(){var u,o;try{const i=yield lbAnnotation.ImgUtils.load(t);return(u=r.current)==null||u.setImgNode(i),(o=R.current)==null||o.call(R,i),null}catch(i){return console.error("Error loading image:",i),i}}),[]),z=React.useCallback(t=>__async(void 0,null,function*(){var u,o;if(E(!0),(u=r.current)==null||u.setLoading(!0),(yield I(t))&&c){const y=yield I(c);y&&console.error("Error loading fallback image:",y)}(o=r.current)==null||o.setLoading(!1),E(!1)}),[I,c]);React.useEffect(()=>{r.current&&z(d)},[d,p,c,z]),React.useEffect(()=>{if(_.current===!1){h.current.push(s);return}const t=()=>{_.current=!0,h.current=[]},u=()=>{var o;const i=h.current.length;if(i>0){const y=h.current[i-1];h.current=[],(o=r.current)==null||o.updateData(y).then(u).catch(t)}else _.current=!0};r.current&&(_.current=!1,r.current.updateData(s).then(u).catch(t))},[s]),React.useEffect(()=>{const t=r.current;(t==null?void 0:t.setSize)&&(t.setSize(g),t.initPosition())},[(a=e.size)==null?void 0:a.width,(m=e.size)==null?void 0:m.height]),React.useEffect(()=>{var t,u;return r.current&&((t=r.current)==null||t.on("onChange",(...o)=>{b==null||b.apply(null,o)}),(u=r.current)==null||u.on("renderZoom",o=>{l&&l(o)})),()=>{var o,i;(o=r.current)==null||o.unbindAll("onChange"),(i=r.current)==null||i.unbindAll("renderZoom")}},[l,b]);const L=React__default.default.createElement("div",{ref:w,style:__spreadValues(__spreadValues({position:"relative"},g),v)}),{imgNode:O,zoom:k,currentPos:j}=r.current||{};return React__default.default.createElement(es.Spin,{spinning:P||A,delay:300,style:S},p&&O?React__default.default.createElement(index,{size:g,imgNode:O,zoom:k,currentPos:j}):L)};var AnnotationView$1=React__default.default.forwardRef(AnnotationView);module.exports=AnnotationView$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((s,u)=>{var d=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?s(t.value):Promise.resolve(t.value).then(d,r);o((i=i.apply(e,a)).next())});const PointCloud2DSingleView=({view2dData:e,setSelectedID:a,currentData:i,showEnlarge:s,checkMode:u=!1,measureVisible:d})=>{var r;const o=React.useRef(null),t=React.useRef(),{selectedBox:n}=useSingleBox.useSingleBox(),g=useSize(o),{url:m,calib:p,path:b}=e,{toggle2dVisible:S,isHighlightVisible:y}=useHighlight.useHighlight({currentData:i}),[j,x]=React.useState(!1),{cuboidBoxIn2DView:f,cacheImageNodeSize:q}=React.useContext(PointCloudContext.PointCloudContext),P=!e,B=React.useMemo(()=>({zIndex:s?-1:101,is2DView:!f,imageName:e.path}),[s,f,e.path]),{rendered:V,isLinking:_}=useDataLinkSwitch(B),v=c=>{h(),q({path:b,imgNode:c})},h=React.useCallback(()=>{var c,C;const k=(c=t.current)==null?void 0:c.toolInstance;if(a(""),!n||!k)return;const l=e.annotations.find(I=>I.annotation.id===n.info.id);let L="";l&&((C=l==null?void 0:l.annotation.pointList)==null?void 0:C.length)>0&&(k.focusPositionByPointList(l==null?void 0:l.annotation.pointList),L=n.info.id,a(L))},[n,t.current,e.annotations]);React.useEffect(()=>{h()},[h]);const z=()=>__async(void 0,null,function*(){x(!0),yield S(m,p),x(!1)});return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image"),ref:o},f?React__default.default.createElement(index,{src:(r=e==null?void 0:e.url)!=null?r:"",annotations:e.annotations,size:g,ref:t,globalStyle:{display:P?"none":"block"},afterImgOnLoad:v,zoomInfo:{min:.01,max:1e3,ratio:.4},measureVisible:d}):React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$1,{shouldExcludePointCloudBoxListUpdate:!_,mappingData:e,size:g,checkMode:u,afterImgOnLoad:v}),V),p&&React__default.default.createElement(index$2,{visible:y(m),onClick:z,loading:j,style:{position:"absolute",right:16,top:16,zIndex:s?-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,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 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),reactRedux=require("react-redux"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),map=require("../../store/annotation/map.js"),lbUtils=require("@labelbee/lb-utils"),PointCloud2DSingleView=require("./PointCloud2DSingleView.js"),index$1=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons"),classNames=require("classnames"),icon_esc=require("../../assets/annotation/common/icon_esc.svg.js"),icon_left_squareOutlined=require("../../assets/annotation/common/icon_left_squareOutlined.svg.js"),icon_right_squareOutlined=require("../../assets/annotation/common/icon_right_squareOutlined.svg.js"),_=require("lodash"),index=require("../../utils/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,l,n)=>l in e?__defProp(e,l,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[l]=n,__spreadValues=(e,l)=>{for(var n in l||(l={}))__hasOwnProp.call(l,n)&&__defNormalProp(e,n,l[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(l))__propIsEnum.call(l,n)&&__defNormalProp(e,n,l[n]);return e},__spreadProps=(e,l)=>__defProps(e,__getOwnPropDescs(l));const EKeyCode=lbAnnotation.cKeyCode.default,ContainerTitle=({showEnlarge:e,isEnlargeTopView:l,data:n,setIsEnlarge:m,setCurIndex:f,curIndex:p=0,index:w,annotations2d:b})=>l?React__default.default.createElement(index$1,{title:n==null?void 0:n.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{m(!1),f(void 0)}}),React__default.default.createElement("span",null,n==null?void 0:n.calName),React__default.default.createElement("span",{style:{marginLeft:"8px"}},p+1,"/",b==null?void 0:b.length)):React__default.default.createElement(index$1,{title:n==null?void 0:n.calName,onClick:()=>{m(!0),f(w)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),PointCloud2DView=({currentData:e,config:l,thumbnailWidth:n,isEnlargeTopView:m,highlightAttribute:f,loadPCDFileLoading:p,checkMode:w,measureVisible:b})=>{var I;const[d,M]=React.useState([]),{topViewInstance:U,displayPointCloudList:F,polygonList:O,imageSizes:x,selectedIDs:k}=React.useContext(PointCloudContext.PointCloudContext),[P,B]=React.useState(""),[y,L]=React.useState(!1),[s,E]=React.useState(void 0);React.useEffect(()=>{var o;if(!p&&U&&(e==null?void 0:e.mappingImgList)&&((o=e==null?void 0:e.mappingImgList)==null?void 0:o.length)>0){const i={fill:"transparent",color:"green"};let r=[];e==null||e.mappingImgList.forEach(t=>{var v,R,V;const A=F.reduce((a,c)=>{var g,u;const h=c.id===P||f===c.attribute,{transferViewData:q,viewRangePointList:C}=(g=lbAnnotation.pointCloudLidar2image(c,t.calib,{createRange:h}))!=null?g:{};if(!q||!C)return[];const W=q.reduce((H,$)=>$.type==="line"?[...H,...$.pointList]:H,[]),X=__spreadProps(__spreadValues({},index.getBoundingRect(W)),{imageName:t.path});if(!index.isBoundingRectInImage(X,t.path,x))return a;const T=(u=lbUtils.toolStyleConverter.getColorFromConfig({attribute:c.attribute},__spreadProps(__spreadValues({},l),{attributeConfigurable:!0}),{}))==null?void 0:u.stroke,Y=G({viewDataPointList:q,pointCloudBox:c,defaultViewStyle:i,stroke:T}),K=[...a,...Y];return(C==null?void 0:C.length)>0&&K.unshift({type:"polygon",annotation:__spreadProps(__spreadValues({id:P,pointList:C},i),{stroke:T,fill:"rgba(255, 255, 255, 0.6)"})}),K},[]),z=x[(v=t==null?void 0:t.path)!=null?v:""];z&&_.isNumber((R=t==null?void 0:t.calib)==null?void 0:R.groundHeight)&&O.forEach(a=>{const c=a.pointList.map(u=>{var h;return __spreadProps(__spreadValues({},u),{z:(h=t==null?void 0:t.calib)==null?void 0:h.groundHeight})}),g=lbAnnotation.pointListLidar2Img(c,t==null?void 0:t.calib,z);if(g){const u=lbUtils.toolStyleConverter.getColorFromConfig({attribute:a.attribute},__spreadProps(__spreadValues({},l),{attributeConfigurable:!0}),{});A.push({type:"polygon",annotation:__spreadProps(__spreadValues({id:a.id,pointList:g},i),{stroke:u==null?void 0:u.stroke,fill:k.includes(a.id)?u==null?void 0:u.fill:"rgba(255, 255, 255, 0.6)"})})}}),r.push({annotations:A,url:t==null?void 0:t.url,calName:(V=t==null?void 0:t.calib)==null?void 0:V.calName,calib:t==null?void 0:t.calib,path:t==null?void 0:t.path})}),M(r)}},[F,e==null?void 0:e.mappingImgList,P,f,p,O,x,k]),React.useEffect(()=>(window.addEventListener("keydown",S),()=>{window.removeEventListener("keydown",S)}),[s]);const S=o=>{const{keyCode:i}=o;switch(i){case EKeyCode.Esc:y&&L(!1);break;case EKeyCode.Left:j();break;case EKeyCode.Right:N();break}},j=()=>{s===void 0||!y||Number(s)>0&&E(s-1)},N=()=>{s===void 0||!y||Number(s)<(d==null?void 0:d.length)-1&&E(s+1)},G=({viewDataPointList:o,pointCloudBox:i,defaultViewStyle:r,stroke:t})=>o?o.map(v=>({type:v.type,annotation:__spreadProps(__spreadValues({id:i.id,pointList:v.pointList},r),{stroke:t})})):[],J=!e||!(e==null?void 0:e.mappingImgList)||!(((I=e==null?void 0:e.mappingImgList)==null?void 0:I.length)>0),Q=React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},React__default.default.createElement("img",{src:icon_left_squareOutlined,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>j()}),React__default.default.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("img",{src:icon_right_squareOutlined,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>N()}),React__default.default.createElement("img",{src:icon_esc,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{L(!1),E(void 0)}}),React__default.default.createElement("span",null,"\u952E\u9000\u51FA"));return(d==null?void 0:d.length)>0?React__default.default.createElement(React__default.default.Fragment,null,d.map((o,i)=>{const r=y&&i===s;return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-2d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:r}),title:React__default.default.createElement(ContainerTitle,{showEnlarge:r,isEnlargeTopView:m,data:o,setIsEnlarge:L,setCurIndex:E,curIndex:s,index:i,annotations2d:d}),titleOnSurface:!r,style:{display:J?"none":"flex",width:r?"100%":n},key:i,toolbar:Q},(o==null?void 0:o.annotations)&&(o==null?void 0:o.url)&&React__default.default.createElement(PointCloud2DSingleView,{key:o.url,currentData:e,view2dData:o,setSelectedID:B,showEnlarge:r,checkMode:w,measureVisible:b}))})):null};var PointCloud2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DView);module.exports=PointCloud2DView$1;
1
+ "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),reactRedux=require("react-redux"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),map=require("../../store/annotation/map.js"),lbUtils=require("@labelbee/lb-utils"),PointCloud2DSingleView=require("./PointCloud2DSingleView.js"),index$1=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons"),classNames=require("classnames"),icon_esc=require("../../assets/annotation/common/icon_esc.svg.js"),icon_left_squareOutlined=require("../../assets/annotation/common/icon_left_squareOutlined.svg.js"),icon_right_squareOutlined=require("../../assets/annotation/common/icon_right_squareOutlined.svg.js"),_=require("lodash"),index=require("../../utils/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,l,n)=>l in e?__defProp(e,l,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[l]=n,__spreadValues=(e,l)=>{for(var n in l||(l={}))__hasOwnProp.call(l,n)&&__defNormalProp(e,n,l[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(l))__propIsEnum.call(l,n)&&__defNormalProp(e,n,l[n]);return e},__spreadProps=(e,l)=>__defProps(e,__getOwnPropDescs(l));const EKeyCode=lbAnnotation.cKeyCode.default,ContainerTitle=({showEnlarge:e,isEnlargeTopView:l,data:n,setIsEnlarge:m,setCurIndex:f,curIndex:p=0,index:w,annotations2d:b})=>l?React__default.default.createElement(index$1,{title:n==null?void 0:n.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{m(!1),f(void 0)}}),React__default.default.createElement("span",null,n==null?void 0:n.calName),React__default.default.createElement("span",{style:{marginLeft:"8px"}},p+1,"/",b==null?void 0:b.length)):React__default.default.createElement(index$1,{title:n==null?void 0:n.calName,onClick:()=>{m(!0),f(w)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),PointCloud2DView=({currentData:e,config:l,thumbnailWidth:n,isEnlargeTopView:m,highlightAttribute:f,loadPCDFileLoading:p,checkMode:w,measureVisible:b})=>{var I;const[d,M]=React.useState([]),{topViewInstance:B,displayPointCloudList:k,polygonList:F,imageSizes:x,selectedIDs:O}=React.useContext(PointCloudContext.PointCloudContext),[P,G]=React.useState(""),[y,L]=React.useState(!1),[s,E]=React.useState(void 0);React.useEffect(()=>{var o;if(!p&&B&&(e==null?void 0:e.mappingImgList)&&((o=e==null?void 0:e.mappingImgList)==null?void 0:o.length)>0){const r={fill:"transparent",color:"green"};let i=[];e==null||e.mappingImgList.forEach(t=>{var v,R,V,A;const z=k.reduce((a,c)=>{var g,u;const h=c.id===P||f===c.attribute,{transferViewData:q,viewRangePointList:C}=(g=lbAnnotation.pointCloudLidar2image(c,t.calib,{createRange:h}))!=null?g:{};if(!q||!C)return[];const X=q.reduce((H,$)=>$.type==="line"?[...H,...$.pointList]:H,[]),Y=__spreadProps(__spreadValues({},index.getBoundingRect(X)),{imageName:t.path});if(!index.isBoundingRectInImage(Y,t.path,x))return a;const K=(u=lbUtils.toolStyleConverter.getColorFromConfig({attribute:c.attribute},__spreadProps(__spreadValues({},l),{attributeConfigurable:!0}),{}))==null?void 0:u.stroke,Z=J({viewDataPointList:q,pointCloudBox:c,defaultViewStyle:r,stroke:K}),U=[...a,...Z];return(C==null?void 0:C.length)>0&&U.unshift({type:"polygon",annotation:__spreadProps(__spreadValues({id:P,pointList:C},r),{stroke:K,fill:"rgba(255, 255, 255, 0.6)"})}),U},[]),T=x[(v=t==null?void 0:t.path)!=null?v:""];T&&_.isNumber((R=t==null?void 0:t.calib)==null?void 0:R.groundHeight)&&F.forEach(a=>{const c=a.pointList.map(u=>{var h;return __spreadProps(__spreadValues({},u),{z:(h=t==null?void 0:t.calib)==null?void 0:h.groundHeight})}),g=lbAnnotation.pointListLidar2Img(c,t==null?void 0:t.calib,T);if(g){const u=lbUtils.toolStyleConverter.getColorFromConfig({attribute:a.attribute},__spreadProps(__spreadValues({},l),{attributeConfigurable:!0}),{});z.push({type:"polygon",annotation:__spreadProps(__spreadValues({id:a.id,pointList:g},r),{stroke:u==null?void 0:u.stroke,fill:O.includes(a.id)?u==null?void 0:u.fill:"rgba(255, 255, 255, 0.6)"})})}}),i.push({annotations:z,url:t==null?void 0:t.url,fallbackUrl:(V=t==null?void 0:t.fallbackUrl)!=null?V:"",calName:(A=t==null?void 0:t.calib)==null?void 0:A.calName,calib:t==null?void 0:t.calib,path:t==null?void 0:t.path})}),M(i)}},[k,e==null?void 0:e.mappingImgList,P,f,p,F,x,O]),React.useEffect(()=>(window.addEventListener("keydown",S),()=>{window.removeEventListener("keydown",S)}),[s]);const S=o=>{const{keyCode:r}=o;switch(r){case EKeyCode.Esc:y&&L(!1);break;case EKeyCode.Left:j();break;case EKeyCode.Right:N();break}},j=()=>{s===void 0||!y||Number(s)>0&&E(s-1)},N=()=>{s===void 0||!y||Number(s)<(d==null?void 0:d.length)-1&&E(s+1)},J=({viewDataPointList:o,pointCloudBox:r,defaultViewStyle:i,stroke:t})=>o?o.map(v=>({type:v.type,annotation:__spreadProps(__spreadValues({id:r.id,pointList:v.pointList},i),{stroke:t})})):[],Q=!e||!(e==null?void 0:e.mappingImgList)||!(((I=e==null?void 0:e.mappingImgList)==null?void 0:I.length)>0),W=React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},React__default.default.createElement("img",{src:icon_left_squareOutlined,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>j()}),React__default.default.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("img",{src:icon_right_squareOutlined,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>N()}),React__default.default.createElement("img",{src:icon_esc,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{L(!1),E(void 0)}}),React__default.default.createElement("span",null,"\u952E\u9000\u51FA"));return(d==null?void 0:d.length)>0?React__default.default.createElement(React__default.default.Fragment,null,d.map((o,r)=>{const i=y&&r===s;return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-2d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:i}),title:React__default.default.createElement(ContainerTitle,{showEnlarge:i,isEnlargeTopView:m,data:o,setIsEnlarge:L,setCurIndex:E,curIndex:s,index:r,annotations2d:d}),titleOnSurface:!i,style:{display:Q?"none":"flex",width:i?"100%":n},key:r,toolbar:W},(o==null?void 0:o.annotations)&&(o==null?void 0:o.url)&&React__default.default.createElement(PointCloud2DSingleView,{key:o.url,currentData:e,view2dData:o,setSelectedID:G,showEnlarge:i,checkMode:w,measureVisible:b}))})):null};var PointCloud2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DView);module.exports=PointCloud2DView$1;
@@ -6,6 +6,7 @@ import React from 'react';
6
6
  export type TAfterImgOnLoad = (img: HTMLImageElement) => void;
7
7
  interface IProps {
8
8
  src: string;
9
+ fallbackSrc?: string;
9
10
  size?: {
10
11
  width?: number;
11
12
  height?: number;
@@ -14,6 +14,7 @@ export interface IAnnotationDataTemporarily {
14
14
  export interface IAnnotationData2dView {
15
15
  annotations: IAnnotationDataTemporarily[];
16
16
  url: string;
17
+ fallbackUrl?: string;
17
18
  calName?: string;
18
19
  calib?: ICalib;
19
20
  path: string;
@@ -1 +1 @@
1
- import h,{useState as k,useRef as m,useImperativeHandle as x,useEffect as c}from"react";import{ViewOperation as N,ImgUtils as F}from"@labelbee/lb-annotation";import{Spin as H}from"antd/es";import T from"../../hooks/useRefCache.js";import $ from"../measureCanvas/index.js";var q=Object.defineProperty,P=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,S=(t,r,o)=>r in t?q(t,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[r]=o,I=(t,r)=>{for(var o in r||(r={}))B.call(r,o)&&S(t,o,r[o]);if(P)for(var o of P(r))G.call(r,o)&&S(t,o,r[o]);return t};const b={width:455,height:100},J=t=>{if(!t)return b;if(t.width&&t.height)return t;const r=I({},t);return r.width||(r.width=b.width),r.height||(r.height=b.height),r},K=(t,r)=>{var o,y;const{src:z,annotations:s=[],style:R={stroke:"blue",thickness:3},zoomChange:v,backgroundStyle:L={},onChange:g,showLoading:E=!1,globalStyle:A,afterImgOnLoad:V,measureVisible:_}=t,d=J(t.size),[j,p]=k(!1),w=m(null),n=m(),O=T(V),l=m([]),f=m(!0);x(r,()=>{const e=n.current;return e?{zoomIn:()=>e.zoomChanged(!0),zoomOut:()=>e.zoomChanged(!1),initImgPos:()=>e.initImgPos(),toolInstance:e}:{}},[n.current]),c(()=>(w.current&&(n.current=new N({container:w.current,size:d,style:R,annotations:s,config:"{}",zoomInfo:t.zoomInfo,staticMode:t.staticMode}),n.current.init()),()=>{var e;(e=n.current)==null||e.destroy()}),[_]),c(()=>{var e;n.current&&(p(!0),(e=n.current)==null||e.setLoading(!0),F.load(z).then(i=>{var a,u;(a=n.current)==null||a.setLoading(!1),p(!1),(u=n.current)==null||u.setImgNode(i),O.current&&O.current(i)}).catch(()=>{var i;(i=n.current)==null||i.setLoading(!1),p(!1)}))},[z,_]),c(()=>{if(f.current===!1){l.current.push(s);return}const e=()=>{f.current=!0,l.current=[]},i=()=>{var a;const u=l.current.length;if(u>0){const Z=l.current[u-1];l.current=[],(a=n.current)==null||a.updateData(Z).then(i).catch(e)}else f.current=!0};n.current&&(f.current=!1,n.current.updateData(s).then(i).catch(e))},[s]),c(()=>{const e=n.current;(e==null?void 0:e.setSize)&&(e.setSize(d),e.initPosition())},[(o=t.size)==null?void 0:o.width,(y=t.size)==null?void 0:y.height]),c(()=>{var e,i;return n.current&&((e=n.current)==null||e.on("onChange",(...a)=>{g==null||g.apply(null,a)}),(i=n.current)==null||i.on("renderZoom",a=>{v&&v(a)})),()=>{var a,u;(a=n.current)==null||a.unbindAll("onChange"),(u=n.current)==null||u.unbindAll("renderZoom")}},[v,g]);const D=h.createElement("div",{ref:w,style:I(I({position:"relative"},d),L)}),{imgNode:C,zoom:M,currentPos:U}=n.current||{};return h.createElement(H,{spinning:E||j,delay:300,style:A},_&&C?h.createElement($,{size:d,imgNode:C,zoom:M,currentPos:U}):D)};var Q=h.forwardRef(K);export{Q as default};
1
+ import w,{useState as T,useRef as b,useImperativeHandle as $,useEffect as v,useCallback as k}from"react";import{ViewOperation as q,ImgUtils as B}from"@labelbee/lb-annotation";import{Spin as G}from"antd/es";import J from"../../hooks/useRefCache.js";import K from"../measureCanvas/index.js";var Q=Object.defineProperty,V=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,j=(t,n,o)=>n in t?Q(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,S=(t,n)=>{for(var o in n||(n={}))W.call(n,o)&&j(t,o,n[o]);if(V)for(var o of V(n))X.call(n,o)&&j(t,o,n[o]);return t},D=(t,n,o)=>new Promise((g,d)=>{var c=l=>{try{f(o.next(l))}catch(m){d(m)}},s=l=>{try{f(o.throw(l))}catch(m){d(m)}},f=l=>l.done?g(l.value):Promise.resolve(l.value).then(c,s);f((o=o.apply(t,n)).next())});const C={width:455,height:100},Y=t=>{if(!t)return C;if(t.width&&t.height)return t;const n=S({},t);return n.width||(n.width=C.width),n.height||(n.height=C.height),n},ee=(t,n)=>{var o,g;const{src:d,fallbackSrc:c,annotations:s=[],style:f={stroke:"blue",thickness:3},zoomChange:l,backgroundStyle:m={},onChange:I,showLoading:N=!1,globalStyle:M,afterImgOnLoad:U,measureVisible:z}=t,_=Y(t.size),[Z,E]=T(!1),O=b(null),r=b(),R=J(U),h=b([]),p=b(!0);$(n,()=>{const e=r.current;return e?{zoomIn:()=>e.zoomChanged(!0),zoomOut:()=>e.zoomChanged(!1),initImgPos:()=>e.initImgPos(),toolInstance:e}:{}},[r.current]),v(()=>(O.current&&(r.current=new q({container:O.current,size:_,style:f,annotations:s,config:"{}",zoomInfo:t.zoomInfo,staticMode:t.staticMode}),r.current.init()),()=>{var e;(e=r.current)==null||e.destroy()}),[z]);const P=k(e=>D(void 0,null,function*(){var u,a;try{const i=yield B.load(e);return(u=r.current)==null||u.setImgNode(i),(a=R.current)==null||a.call(R,i),null}catch(i){return console.error("Error loading image:",i),i}}),[]),A=k(e=>D(void 0,null,function*(){var u,a;if(E(!0),(u=r.current)==null||u.setLoading(!0),(yield P(e))&&c){const y=yield P(c);y&&console.error("Error loading fallback image:",y)}(a=r.current)==null||a.setLoading(!1),E(!1)}),[P,c]);v(()=>{r.current&&A(d)},[d,z,c,A]),v(()=>{if(p.current===!1){h.current.push(s);return}const e=()=>{p.current=!0,h.current=[]},u=()=>{var a;const i=h.current.length;if(i>0){const y=h.current[i-1];h.current=[],(a=r.current)==null||a.updateData(y).then(u).catch(e)}else p.current=!0};r.current&&(p.current=!1,r.current.updateData(s).then(u).catch(e))},[s]),v(()=>{const e=r.current;(e==null?void 0:e.setSize)&&(e.setSize(_),e.initPosition())},[(o=t.size)==null?void 0:o.width,(g=t.size)==null?void 0:g.height]),v(()=>{var e,u;return r.current&&((e=r.current)==null||e.on("onChange",(...a)=>{I==null||I.apply(null,a)}),(u=r.current)==null||u.on("renderZoom",a=>{l&&l(a)})),()=>{var a,i;(a=r.current)==null||a.unbindAll("onChange"),(i=r.current)==null||i.unbindAll("renderZoom")}},[l,I]);const x=w.createElement("div",{ref:O,style:S(S({position:"relative"},_),m)}),{imgNode:L,zoom:F,currentPos:H}=r.current||{};return w.createElement(G,{spinning:N||Z,delay:300,style:M},z&&L?w.createElement(K,{size:_,imgNode:L,zoom:F,currentPos:H}):x)};var te=w.forwardRef(ee);export{te as default};
@@ -1 +1 @@
1
- import{getClassName as H}from"../../utils/dom.js";import s,{useRef as V,useState as N,useContext as w,useMemo as A,useCallback as F,useEffect as M}from"react";import T from"../AnnotationView/index.js";import U from"../../hooks/useSize.js";import{useSingleBox as q}from"./hooks/useSingleBox.js";import{useHighlight as D}from"./hooks/useHighlight.js";import G from"./components/HighlightVisible/index.js";import{PointCloudContext as J}from"./PointCloudContext.js";import K from"./hooks/useDataLinkSwitch.js";import Q from"../pointCloud2DRectOperationView/index.js";var W=(t,r,e)=>new Promise((l,c)=>{var m=o=>{try{i(e.next(o))}catch(n){c(n)}},u=o=>{try{i(e.throw(o))}catch(n){c(n)}},i=o=>o.done?l(o.value):Promise.resolve(o.value).then(m,u);i((e=e.apply(t,r)).next())});const X=({view2dData:t,setSelectedID:r,currentData:e,showEnlarge:l,checkMode:c=!1,measureVisible:m})=>{var u;const i=V(null),o=V(),{selectedBox:n}=q(),h=U(i),{url:g,calib:x,path:P}=t,{toggle2dVisible:j,isHighlightVisible:y}=D({currentData:e}),[v,k]=N(!1),{cuboidBoxIn2DView:f,cacheImageNodeSize:z}=w(J),B=!t,I=A(()=>({zIndex:l?-1:101,is2DView:!f,imageName:t.path}),[l,f,t.path]),{rendered:_,isLinking:O}=K(I),C=d=>{p(),z({path:P,imgNode:d})},p=F(()=>{var d,b;const L=(d=o.current)==null?void 0:d.toolInstance;if(r(""),!n||!L)return;const a=t.annotations.find(E=>E.annotation.id===n.info.id);let S="";a&&((b=a==null?void 0:a.annotation.pointList)==null?void 0:b.length)>0&&(L.focusPositionByPointList(a==null?void 0:a.annotation.pointList),S=n.info.id,r(S))},[n,o.current,t.annotations]);M(()=>{p()},[p]);const R=()=>W(void 0,null,function*(){k(!0),yield j(g,x),k(!1)});return s.createElement("div",{className:H("point-cloud-2d-image"),ref:i},f?s.createElement(T,{src:(u=t==null?void 0:t.url)!=null?u:"",annotations:t.annotations,size:h,ref:o,globalStyle:{display:B?"none":"block"},afterImgOnLoad:C,zoomInfo:{min:.01,max:1e3,ratio:.4},measureVisible:m}):s.createElement(s.Fragment,null,s.createElement(Q,{shouldExcludePointCloudBoxListUpdate:!O,mappingData:t,size:h,checkMode:c,afterImgOnLoad:C}),_),x&&s.createElement(G,{visible:y(g),onClick:R,loading:v,style:{position:"absolute",right:16,top:16,zIndex:l?-1:101}}))};export{X as default};
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 +1 @@
1
- import{getClassName as Q}from"../../utils/dom.js";import i,{useState as L,useContext as ue,useEffect as U}from"react";import{PointCloudContainer as ae}from"./PointCloudLayout.js";import{PointCloudContext as ce}from"./PointCloudContext.js";import{connect as de}from"react-redux";import{cKeyCode as me,pointCloudLidar2image as fe,pointListLidar2Img as pe}from"@labelbee/lb-annotation";import{LabelBeeContext as ge}from"../../store/ctx.js";import{a2MapStateToProps as ve}from"../../store/annotation/map.js";import{toolStyleConverter as W}from"@labelbee/lb-utils";import be from"./PointCloud2DSingleView.js";import X from"./components/TitleButton/index.js";import{LeftOutlined as ye}from"@ant-design/icons";import Ee from"classnames";import he from"../../assets/annotation/common/icon_esc.svg.js";import _e from"../../assets/annotation/common/icon_left_squareOutlined.svg.js";import we from"../../assets/annotation/common/icon_right_squareOutlined.svg.js";import{isNumber as Ce}from"lodash";import{getBoundingRect as Pe,isBoundingRectInImage as Le}from"../../utils/index.js";var xe=Object.defineProperty,Ie=Object.defineProperties,Fe=Object.getOwnPropertyDescriptors,Y=Object.getOwnPropertySymbols,ke=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable,Z=(e,n,o)=>n in e?xe(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,m=(e,n)=>{for(var o in n||(n={}))ke.call(n,o)&&Z(e,o,n[o]);if(Y)for(var o of Y(n))Oe.call(n,o)&&Z(e,o,n[o]);return e},f=(e,n)=>Ie(e,Fe(n));const j=me.default,je=({showEnlarge:e,isEnlargeTopView:n,data:o,setIsEnlarge:y,setCurIndex:g,curIndex:E=0,index:x,annotations2d:h})=>n?i.createElement(X,{title:o==null?void 0:o.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?i.createElement("div",{style:{display:"flex",alignItems:"center"}},i.createElement(ye,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{y(!1),g(void 0)}}),i.createElement("span",null,o==null?void 0:o.calName),i.createElement("span",{style:{marginLeft:"8px"}},E+1,"/",h==null?void 0:h.length)):i.createElement(X,{title:o==null?void 0:o.calName,onClick:()=>{y(!0),g(x)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),Ne=({currentData:e,config:n,thumbnailWidth:o,isEnlargeTopView:y,highlightAttribute:g,loadPCDFileLoading:E,checkMode:x,measureVisible:h})=>{var N;const[p,D]=L([]),{topViewInstance:ee,displayPointCloudList:R,polygonList:S,imageSizes:I,selectedIDs:V}=ue(ce),[F,te]=L(""),[_,k]=L(!1),[u,w]=L(void 0);U(()=>{var l;if(!E&&ee&&(e==null?void 0:e.mappingImgList)&&((l=e==null?void 0:e.mappingImgList)==null?void 0:l.length)>0){const r={fill:"transparent",color:"green"};let s=[];e==null||e.mappingImgList.forEach(t=>{var v,K,$;const q=R.reduce((c,d)=>{var b,a;const C=d.id===F||g===d.attribute,{transferViewData:O,viewRangePointList:P}=(b=fe(d,t.calib,{createRange:C}))!=null?b:{};if(!O||!P)return[];const le=O.reduce((G,J)=>J.type==="line"?[...G,...J.pointList]:G,[]),re=f(m({},Pe(le)),{imageName:t.path});if(!Le(re,t.path,I))return c;const B=(a=W.getColorFromConfig({attribute:d.attribute},f(m({},n),{attributeConfigurable:!0}),{}))==null?void 0:a.stroke,se=oe({viewDataPointList:O,pointCloudBox:d,defaultViewStyle:r,stroke:B}),M=[...c,...se];return(P==null?void 0:P.length)>0&&M.unshift({type:"polygon",annotation:f(m({id:F,pointList:P},r),{stroke:B,fill:"rgba(255, 255, 255, 0.6)"})}),M},[]),H=I[(v=t==null?void 0:t.path)!=null?v:""];H&&Ce((K=t==null?void 0:t.calib)==null?void 0:K.groundHeight)&&S.forEach(c=>{const d=c.pointList.map(a=>{var C;return f(m({},a),{z:(C=t==null?void 0:t.calib)==null?void 0:C.groundHeight})}),b=pe(d,t==null?void 0:t.calib,H);if(b){const a=W.getColorFromConfig({attribute:c.attribute},f(m({},n),{attributeConfigurable:!0}),{});q.push({type:"polygon",annotation:f(m({id:c.id,pointList:b},r),{stroke:a==null?void 0:a.stroke,fill:V.includes(c.id)?a==null?void 0:a.fill:"rgba(255, 255, 255, 0.6)"})})}}),s.push({annotations:q,url:t==null?void 0:t.url,calName:($=t==null?void 0:t.calib)==null?void 0:$.calName,calib:t==null?void 0:t.calib,path:t==null?void 0:t.path})}),D(s)}},[R,e==null?void 0:e.mappingImgList,F,g,E,S,I,V]),U(()=>(window.addEventListener("keydown",A),()=>{window.removeEventListener("keydown",A)}),[u]);const A=l=>{const{keyCode:r}=l;switch(r){case j.Esc:_&&k(!1);break;case j.Left:z();break;case j.Right:T();break}},z=()=>{u===void 0||!_||Number(u)>0&&w(u-1)},T=()=>{u===void 0||!_||Number(u)<(p==null?void 0:p.length)-1&&w(u+1)},oe=({viewDataPointList:l,pointCloudBox:r,defaultViewStyle:s,stroke:t})=>l?l.map(v=>({type:v.type,annotation:f(m({id:r.id,pointList:v.pointList},s),{stroke:t})})):[],ne=!e||!(e==null?void 0:e.mappingImgList)||!(((N=e==null?void 0:e.mappingImgList)==null?void 0:N.length)>0),ie=i.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},i.createElement("img",{src:_e,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>z()}),i.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),i.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),i.createElement("img",{src:we,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>T()}),i.createElement("img",{src:he,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{k(!1),w(void 0)}}),i.createElement("span",null,"\u952E\u9000\u51FA"));return(p==null?void 0:p.length)>0?i.createElement(i.Fragment,null,p.map((l,r)=>{const s=_&&r===u;return i.createElement(ae,{className:Ee({[Q("point-cloud-2d-container")]:!0,[Q("point-cloud-container","zoom")]:s}),title:i.createElement(je,{showEnlarge:s,isEnlargeTopView:y,data:l,setIsEnlarge:k,setCurIndex:w,curIndex:u,index:r,annotations2d:p}),titleOnSurface:!s,style:{display:ne?"none":"flex",width:s?"100%":o},key:r,toolbar:ie},(l==null?void 0:l.annotations)&&(l==null?void 0:l.url)&&i.createElement(be,{key:l.url,currentData:e,view2dData:l,setSelectedID:te,showEnlarge:s,checkMode:x,measureVisible:h}))})):null};var Re=de(ve,null,null,{context:ge})(Ne);export{Re as default};
1
+ import{getClassName as Q}from"../../utils/dom.js";import i,{useState as L,useContext as ae,useEffect as W}from"react";import{PointCloudContainer as ce}from"./PointCloudLayout.js";import{PointCloudContext as de}from"./PointCloudContext.js";import{connect as me}from"react-redux";import{cKeyCode as fe,pointCloudLidar2image as pe,pointListLidar2Img as ge}from"@labelbee/lb-annotation";import{LabelBeeContext as ve}from"../../store/ctx.js";import{a2MapStateToProps as be}from"../../store/annotation/map.js";import{toolStyleConverter as X}from"@labelbee/lb-utils";import ye from"./PointCloud2DSingleView.js";import Y from"./components/TitleButton/index.js";import{LeftOutlined as Ee}from"@ant-design/icons";import he from"classnames";import _e from"../../assets/annotation/common/icon_esc.svg.js";import we from"../../assets/annotation/common/icon_left_squareOutlined.svg.js";import Ce from"../../assets/annotation/common/icon_right_squareOutlined.svg.js";import{isNumber as Pe}from"lodash";import{getBoundingRect as Le,isBoundingRectInImage as xe}from"../../utils/index.js";var Ie=Object.defineProperty,ke=Object.defineProperties,Fe=Object.getOwnPropertyDescriptors,Z=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable,D=(e,n,o)=>n in e?Ie(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,m=(e,n)=>{for(var o in n||(n={}))Oe.call(n,o)&&D(e,o,n[o]);if(Z)for(var o of Z(n))je.call(n,o)&&D(e,o,n[o]);return e},f=(e,n)=>ke(e,Fe(n));const j=fe.default,Ne=({showEnlarge:e,isEnlargeTopView:n,data:o,setIsEnlarge:y,setCurIndex:g,curIndex:E=0,index:x,annotations2d:h})=>n?i.createElement(Y,{title:o==null?void 0:o.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?i.createElement("div",{style:{display:"flex",alignItems:"center"}},i.createElement(Ee,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{y(!1),g(void 0)}}),i.createElement("span",null,o==null?void 0:o.calName),i.createElement("span",{style:{marginLeft:"8px"}},E+1,"/",h==null?void 0:h.length)):i.createElement(Y,{title:o==null?void 0:o.calName,onClick:()=>{y(!0),g(x)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),Re=({currentData:e,config:n,thumbnailWidth:o,isEnlargeTopView:y,highlightAttribute:g,loadPCDFileLoading:E,checkMode:x,measureVisible:h})=>{var N;const[p,ee]=L([]),{topViewInstance:te,displayPointCloudList:R,polygonList:S,imageSizes:I,selectedIDs:V}=ae(de),[k,oe]=L(""),[_,F]=L(!1),[u,w]=L(void 0);W(()=>{var l;if(!E&&te&&(e==null?void 0:e.mappingImgList)&&((l=e==null?void 0:e.mappingImgList)==null?void 0:l.length)>0){const r={fill:"transparent",color:"green"};let s=[];e==null||e.mappingImgList.forEach(t=>{var v,K,$,q;const H=R.reduce((c,d)=>{var b,a;const C=d.id===k||g===d.attribute,{transferViewData:O,viewRangePointList:P}=(b=pe(d,t.calib,{createRange:C}))!=null?b:{};if(!O||!P)return[];const re=O.reduce((G,J)=>J.type==="line"?[...G,...J.pointList]:G,[]),se=f(m({},Le(re)),{imageName:t.path});if(!xe(se,t.path,I))return c;const B=(a=X.getColorFromConfig({attribute:d.attribute},f(m({},n),{attributeConfigurable:!0}),{}))==null?void 0:a.stroke,ue=ne({viewDataPointList:O,pointCloudBox:d,defaultViewStyle:r,stroke:B}),M=[...c,...ue];return(P==null?void 0:P.length)>0&&M.unshift({type:"polygon",annotation:f(m({id:k,pointList:P},r),{stroke:B,fill:"rgba(255, 255, 255, 0.6)"})}),M},[]),U=I[(v=t==null?void 0:t.path)!=null?v:""];U&&Pe((K=t==null?void 0:t.calib)==null?void 0:K.groundHeight)&&S.forEach(c=>{const d=c.pointList.map(a=>{var C;return f(m({},a),{z:(C=t==null?void 0:t.calib)==null?void 0:C.groundHeight})}),b=ge(d,t==null?void 0:t.calib,U);if(b){const a=X.getColorFromConfig({attribute:c.attribute},f(m({},n),{attributeConfigurable:!0}),{});H.push({type:"polygon",annotation:f(m({id:c.id,pointList:b},r),{stroke:a==null?void 0:a.stroke,fill:V.includes(c.id)?a==null?void 0:a.fill:"rgba(255, 255, 255, 0.6)"})})}}),s.push({annotations:H,url:t==null?void 0:t.url,fallbackUrl:($=t==null?void 0:t.fallbackUrl)!=null?$:"",calName:(q=t==null?void 0:t.calib)==null?void 0:q.calName,calib:t==null?void 0:t.calib,path:t==null?void 0:t.path})}),ee(s)}},[R,e==null?void 0:e.mappingImgList,k,g,E,S,I,V]),W(()=>(window.addEventListener("keydown",A),()=>{window.removeEventListener("keydown",A)}),[u]);const A=l=>{const{keyCode:r}=l;switch(r){case j.Esc:_&&F(!1);break;case j.Left:z();break;case j.Right:T();break}},z=()=>{u===void 0||!_||Number(u)>0&&w(u-1)},T=()=>{u===void 0||!_||Number(u)<(p==null?void 0:p.length)-1&&w(u+1)},ne=({viewDataPointList:l,pointCloudBox:r,defaultViewStyle:s,stroke:t})=>l?l.map(v=>({type:v.type,annotation:f(m({id:r.id,pointList:v.pointList},s),{stroke:t})})):[],ie=!e||!(e==null?void 0:e.mappingImgList)||!(((N=e==null?void 0:e.mappingImgList)==null?void 0:N.length)>0),le=i.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},i.createElement("img",{src:we,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>z()}),i.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),i.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),i.createElement("img",{src:Ce,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>T()}),i.createElement("img",{src:_e,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{F(!1),w(void 0)}}),i.createElement("span",null,"\u952E\u9000\u51FA"));return(p==null?void 0:p.length)>0?i.createElement(i.Fragment,null,p.map((l,r)=>{const s=_&&r===u;return i.createElement(ce,{className:he({[Q("point-cloud-2d-container")]:!0,[Q("point-cloud-container","zoom")]:s}),title:i.createElement(Ne,{showEnlarge:s,isEnlargeTopView:y,data:l,setIsEnlarge:F,setCurIndex:w,curIndex:u,index:r,annotations2d:p}),titleOnSurface:!s,style:{display:ie?"none":"flex",width:s?"100%":o},key:r,toolbar:le},(l==null?void 0:l.annotations)&&(l==null?void 0:l.url)&&i.createElement(ye,{key:l.url,currentData:e,view2dData:l,setSelectedID:oe,showEnlarge:s,checkMode:x,measureVisible:h}))})):null};var Se=me(be,null,null,{context:ve})(Re);export{Se as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.23.0-alpha.43",
3
+ "version": "1.23.0-alpha.44",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",