@labelbee/lb-components 1.17.0-alpha.4 → 1.17.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),es=require("antd/es"),useRefCache=require("../../hooks/useRefCache.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,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__spreadValues=(e,t)=>{for(var o in t||(t={}))__hasOwnProp.call(t,o)&&__defNormalProp(e,o,t[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(t))__propIsEnum.call(t,o)&&__defNormalProp(e,o,t[o]);return e};const DEFAULT_SIZE={width:455,height:100},sizeInitialized=e=>{if(!e)return DEFAULT_SIZE;if(e.width&&e.height)return e;const t=__spreadValues({},e);return t.width||(t.width=DEFAULT_SIZE.width),t.height||(t.height=DEFAULT_SIZE.height),t},AnnotationView=(e,t)=>{var o,h;const{src:g,annotations:l=[],style:m={stroke:"blue",thickness:3},zoomChange:c,backgroundStyle:w={},onChange:s,showLoading:b=!1,globalStyle:p,afterImgOnLoad:y}=e,f=sizeInitialized(e.size),[I,d]=React.useState(!1),v=React.useRef(null),r=React.useRef(),_=useRefCache(y);React.useImperativeHandle(t,()=>{const n=r.current;return n?{zoomIn:()=>n.zoomChanged(!0),zoomOut:()=>n.zoomChanged(!1),initImgPos:()=>n.initImgPos(),toolInstance:n}:{}},[r.current]),React.useEffect(()=>(v.current&&(r.current=new lbAnnotation.ViewOperation({container:v.current,size:f,style:m,annotations:l,config:"{}",zoomInfo:e.zoomInfo,staticMode:e.staticMode}),r.current.init()),()=>{var n;(n=r.current)==null||n.destroy()}),[]),React.useEffect(()=>{var n;r.current&&(d(!0),(n=r.current)==null||n.setLoading(!0),lbAnnotation.ImgUtils.load(g).then(i=>{var a,u;(a=r.current)==null||a.setLoading(!1),d(!1),(u=r.current)==null||u.setImgNode(i),_.current&&_.current(i)}).catch(()=>{var i;(i=r.current)==null||i.setLoading(!1),d(!1)}))},[g]),React.useEffect(()=>{r.current&&r.current.updateData(l)},[l]),React.useEffect(()=>{const n=r.current;(n==null?void 0:n.setSize)&&(n.setSize(f),n.initPosition())},[(o=e.size)==null?void 0:o.width,(h=e.size)==null?void 0:h.height]),React.useEffect(()=>{var n,i;return r.current&&((n=r.current)==null||n.on("onChange",(...a)=>{s==null||s.apply(null,a)}),(i=r.current)==null||i.on("renderZoom",a=>{c&&c(a)})),()=>{var a,u;(a=r.current)==null||a.unbindAll("onChange"),(u=r.current)==null||u.unbindAll("renderZoom")}},[c,s]);const O=React__default.default.createElement("div",{ref:v,style:__spreadValues(__spreadValues({position:"relative"},f),w)});return React__default.default.createElement(es.Spin,{spinning:b||I,delay:300,style:p},O)};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");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};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,_;const{src:m,annotations:c=[],style:w={stroke:"blue",thickness:3},zoomChange:f,backgroundStyle:b={},onChange:d,showLoading:y=!1,globalStyle:I,afterImgOnLoad:R}=e,h=sizeInitialized(e.size),[O,v]=React.useState(!1),g=React.useRef(null),r=React.useRef(),p=useRefCache(R),l=React.useRef([]),s=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(()=>(g.current&&(r.current=new lbAnnotation.ViewOperation({container:g.current,size:h,style:w,annotations:c,config:"{}",zoomInfo:e.zoomInfo,staticMode:e.staticMode}),r.current.init()),()=>{var t;(t=r.current)==null||t.destroy()}),[]),React.useEffect(()=>{var t;r.current&&(v(!0),(t=r.current)==null||t.setLoading(!0),lbAnnotation.ImgUtils.load(m).then(i=>{var o,u;(o=r.current)==null||o.setLoading(!1),v(!1),(u=r.current)==null||u.setImgNode(i),p.current&&p.current(i)}).catch(()=>{var i;(i=r.current)==null||i.setLoading(!1),v(!1)}))},[m]),React.useEffect(()=>{if(s.current===!1){l.current.push(c);return}const t=()=>{s.current=!0,l.current=[]},i=()=>{var o;const u=l.current.length;if(u>0){const E=l.current[u-1];l.current=[],(o=r.current)==null||o.updateData(E).then(i).catch(t)}else s.current=!0};r.current&&(s.current=!1,r.current.updateData(c).then(i).catch(t))},[c]),React.useEffect(()=>{const t=r.current;(t==null?void 0:t.setSize)&&(t.setSize(h),t.initPosition())},[(a=e.size)==null?void 0:a.width,(_=e.size)==null?void 0:_.height]),React.useEffect(()=>{var t,i;return r.current&&((t=r.current)==null||t.on("onChange",(...o)=>{d==null||d.apply(null,o)}),(i=r.current)==null||i.on("renderZoom",o=>{f&&f(o)})),()=>{var o,u;(o=r.current)==null||o.unbindAll("onChange"),(u=r.current)==null||u.unbindAll("renderZoom")}},[f,d]);const z=React__default.default.createElement("div",{ref:g,style:__spreadValues(__spreadValues({position:"relative"},h),b)});return React__default.default.createElement(es.Spin,{spinning:y||O,delay:300,style:I},z)};var AnnotationView$1=React__default.default.forwardRef(AnnotationView);module.exports=AnnotationView$1;
@@ -1 +1 @@
1
- "use strict";var map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),React=require("react"),index$1=require("../AnnotationView/index.js"),reactRedux=require("react-redux"),PointCloudContext=require("./PointCloudContext.js"),index=require("./components/TitleButton/index.js"),antd=require("antd"),highlightSegmentWorker=require("../../_virtual/highlightSegmentWorker.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,n,o)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,__spreadValues=(e,n)=>{for(var o in n||(n={}))__hasOwnProp.call(n,o)&&__defNormalProp(e,o,n[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(n))__propIsEnum.call(n,o)&&__defNormalProp(e,o,n[o]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const PointCloudSegment2DSingleView=({path:e,url:n,calib:o,pcdUrl:s,highlightAttribute:a})=>{const{ptSegmentInstance:t,cacheImageNodeSize:h,imageSizes:C}=React.useContext(PointCloudContext.PointCloudContext),S=React.useRef(null),d=React.useRef(0),f=React.useRef({}),c=React.useRef(),[p,g]=React.useState([]),[_,v]=React.useState(!1);React.useEffect(()=>()=>{d.current=0,f.current={},c.current=void 0},[s]);const m=React.useCallback(()=>{var r;if(d.current=d.current+1,d.current===2){const i=(r=t==null?void 0:t.store)==null?void 0:r.originPoints;if(!i||!c.current){console.error("cacheMappingPCD2Img Error",{path:e,points:i,filterSize:c.current});return}f.current=lbAnnotation.pointMappingLidar2image(i,o,c.current).pcdMapping}},[t]),P=React.useCallback((r,i)=>{if(r&&c.current){const l=f.current,u=new highlightSegmentWorker;v(!0),u.postMessage({cacheMap:l,indexes:r,defaultRGBA:i}),u.onmessage=y=>{g(y.data.annotations),u.terminate(),v(!1)}}},[]);React.useEffect(()=>{if(!(t==null?void 0:t.store))return;const r=t.store.getHighlightAttribute(a!=null?a:""),i=t==null?void 0:t.getColorFromConfig(a!=null?a:"");P(r.flat(),i.stroke)},[a,t]),React.useEffect(()=>{if(t){const r=({newAttribute:i})=>{const l=t==null?void 0:t.getColorFromConfig(i);l&&g(p.map(u=>__spreadProps(__spreadValues({},u),{defaultRGBA:l.stroke})))};return t.on("updateDefaultAttribute",r),()=>{t.unbind("updateDefaultAttribute",r)}}},[t,p]),React.useEffect(()=>{if(t){const r=i=>{if(i.cacheSegData){const{cacheSegData:l}=i;if(l==null?void 0:l.indexes){const u=t.getColorFromConfig(l.attribute);P(l==null?void 0:l.indexes,u.stroke)}}else g([])};return t.on("syncPointCloudStatus",r),t.on("loadPCDFileEnd",m),()=>{t.unbind("syncPointCloudStatus",r),t.unbind("loadPCDFileEnd",m)}}},[t,s,C]);const b=r=>{h({path:e,imgNode:r}),c.current={width:r.width,height:r.height},m()};return React__default.default.createElement("div",{key:e,style:{position:"relative"},ref:S},React__default.default.createElement(index,{title:o.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:_,delay:1e3},React__default.default.createElement(index$1,{size:{width:300,height:200},key:e,src:n,annotations:p,afterImgOnLoad:b})))},PointCloudSegment2DView=({currentData:e,highlightAttribute:n})=>{var o;const s=(o=e.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((a,t)=>a.calib&&React__default.default.createElement(PointCloudSegment2DSingleView,{key:a.path,path:a.path,url:a.url,calib:a.calib,pcdUrl:e.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(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,n,r)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,__spreadValues=(e,n)=>{for(var r in n||(n={}))__hasOwnProp.call(n,r)&&__defNormalProp(e,r,n[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(n))__propIsEnum.call(n,r)&&__defNormalProp(e,r,n[r]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const PointCloudSegment2DSingleView=({path:e,url:n,calib:r,pcdUrl:u,highlightAttribute:a})=>{const{ptSegmentInstance:t,cacheImageNodeSize:b,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},[u]);const m=React.useCallback(()=>{var o;if(f.current=f.current+1,f.current===2){const i=(o=t==null?void 0:t.store)==null?void 0:o.originPoints;if(!i||!c.current){console.error("cacheMappingPCD2Img Error",{path:e,points:i,filterSize:c.current});return}p.current=lbAnnotation.pointMappingLidar2image(i,r,c.current).pcdMapping}},[t]),C=React.useMemo(()=>{const o=(i,l)=>{var s,S;if(i&&c.current){P.current&&((S=(s=P.current)==null?void 0:s.terminate)==null||S.call(s));const E=p.current,d=new highlightSegmentWorker;d.current=d,h(!0),d.postMessage({cacheMap:E,indexes:i,defaultRGBA:l}),d.onmessage=O=>{v(O.data.annotations),d.terminate(),h(!1),d.current=void 0}}};return _.debounce(o,100)},[]);React.useEffect(()=>{if(!(t==null?void 0:t.store))return;const o=t.store.getHighlightAttribute(a!=null?a:""),i=t==null?void 0:t.getColorFromConfig(a!=null?a:"");C(o.flat(),i.stroke)},[a,t]),React.useEffect(()=>{if(t){const o=({newAttribute:i})=>{const l=t==null?void 0:t.getColorFromConfig(i);l&&v(g.map(s=>__spreadProps(__spreadValues({},s),{defaultRGBA:l.stroke})))};return t.on("updateDefaultAttribute",o),()=>{t.unbind("updateDefaultAttribute",o)}}},[t,g]),React.useEffect(()=>{if(t){const o=i=>{if(i.cacheSegData){const{cacheSegData:l}=i;if(l==null?void 0:l.indexes){const s=t.getColorFromConfig(l.attribute);C(l==null?void 0:l.indexes,s.stroke)}}else v([])};return t.on("syncPointCloudStatus",o),t.on("loadPCDFileEnd",m),()=>{t.unbind("syncPointCloudStatus",o),t.unbind("loadPCDFileEnd",m)}}},[t,u,y]);const D=o=>{b({path:e,imgNode:o}),c.current={width:o.width,height:o.height},m()};return React__default.default.createElement("div",{key:e,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:e,src:n,annotations:g,afterImgOnLoad:D})))},PointCloudSegment2DView=({currentData:e,highlightAttribute:n})=>{var r;const u=(r=e.mappingImgList)!=null?r:[];return(u==null?void 0:u.length)>0?React__default.default.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},u==null?void 0:u.map((a,t)=>a.calib&&React__default.default.createElement(PointCloudSegment2DSingleView,{key:a.path,path:a.path,url:a.url,calib:a.calib,pcdUrl:e.url,highlightAttribute:n}))):null};var PointCloudSegment2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudSegment2DView);module.exports=PointCloudSegment2DView$1;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),icons=require("@ant-design/icons"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js"),index$1=require("./components/batchUpdateModal/index.js"),lbUtils=require("@labelbee/lb-utils"),index$2=require("../../../../components/attributeList/index.js"),useAttribute=require("../../../../components/pointCloudView/hooks/useAttribute.js"),lassoSelector=require("../../../../assets/annotation/pointCloudTool/lassoSelector.svg.js"),lassoSelector_a=require("../../../../assets/annotation/pointCloudTool/lassoSelector_a.svg.js"),circleSelector=require("../../../../assets/annotation/pointCloudTool/circleSelector.svg.js"),circleSelector_a=require("../../../../assets/annotation/pointCloudTool/circleSelector_a.svg.js"),icon_rect=require("../../../../assets/annotation/rectTool/icon_rect.svg.js"),icon_rect_a=require("../../../../assets/annotation/rectTool/icon_rect_a.svg.js"),index$3=require("../index.js"),actionCreators=require("../../../../store/annotation/actionCreators.js"),usePointCloudViews=require("../../../../components/pointCloudView/hooks/usePointCloudViews.js");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,e,o)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,__spreadValues=(t,e)=>{for(var o in e||(e={}))__hasOwnProp.call(e,o)&&__defNormalProp(t,o,e[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(e))__propIsEnum.call(e,o)&&__defNormalProp(t,o,e[o]);return t},__spreadProps=(t,e)=>__defProps(t,__getOwnPropDescs(e));const AnnotatedBox=({imgList:t,imgIndex:e})=>{const o=React.useContext(PointCloudContext.PointCloudContext),[m,u]=React.useState([]),{t:l}=reactI18next.useTranslation();React.useEffect(()=>{const i=t;let f=new Map;u(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:i,extraBoxList:c,ignoreIndexList:[e]}).filter(a=>!a.trackID||f.get(a.trackID)?!1:(f.set(a.trackID,!0),!0)).sort((a,r)=>{var s,g;const d=(s=a==null?void 0:a.trackID)!=null?s:0,p=(g=r==null?void 0:r.trackID)!=null?g:0;return d-p}).map(a=>{var r;return(r=a==null?void 0:a.trackID)!=null?r:0}))},[o.pointCloudBoxList,t]);const{pointCloudBoxList:c}=o;return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:16}},l("AllTrackIDs")),React__default.default.createElement("div",null,m.map(i=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:i,style:{color:"#666",marginBottom:8}},i))))},BoxTrackIDInput=()=>{const[t,e]=React.useState(!1),o=React.useContext(PointCloudContext.PointCloudContext),{pointCloudBoxList:m}=o,{selectedBox:u,updateSelectedBox:l}=useSingleBox.useSingleBox(),[c,i]=React.useState(""),{t:f}=reactI18next.useTranslation(),a=u==null?void 0:u.info.trackID,r=d=>!!m.find(C=>C.trackID===d&&C.id!==(u==null?void 0:u.info.id)),s=(d=!1)=>{const p=parseInt(c,10);if(d&&e(!1),isNaN(p)){antd.message.error(f("PositiveIntegerCheck"));return}if(c.indexOf(".")>-1){antd.message.error(f("NotAllowDecimalPointsInTrackID"));return}if(r(p)){antd.message.error(f("DuplicateTrackIDsExist"));return}if(!(p>0)){antd.message.error(f("PositiveIntegerCheck"));return}g(p)};React.useEffect(()=>{e(!1)},[a]);const g=d=>{var p;const C=l({trackID:d});(p=o==null?void 0:o.topViewInstance)==null||p.updatePolygonList(C!=null?C:[])};return React__default.default.createElement("div",{style:{padding:24}},React__default.default.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,f("CurrentBoxTrackIDs")),a&&React__default.default.createElement(index$1,{id:a,updateCurrentPolygonList:d=>g(d)})),React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},t&&a?React__default.default.createElement(antd.Input,{defaultValue:a,onChange:d=>{i(d.target.value)},disabled:!a,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):React__default.default.createElement("span",null,a),React__default.default.createElement(icons.EditFilled,{style:{color:"#999",marginLeft:16,cursor:typeof a!="undefined"?"pointer":"not-allowed"},onClick:()=>{a&&e(!t)}})))},isAllowUpdateInSegment=({segmentStatus:t,globalPattern:e})=>e===lbUtils.EPointCloudPattern.Segmentation&&![lbUtils.EPointCloudSegmentStatus.Edit,lbUtils.EPointCloudSegmentStatus.Ready].includes(t),AttributeUpdater=({attributeList:t,subAttributeList:e,toolInstance:o,config:m,stepList:u,stepInfo:l,enableColorPicker:c})=>{const[i,f]=React.useState({segmentStatus:lbUtils.EPointCloudSegmentStatus.Ready}),{selectedBox:a}=useSingleBox.useSingleBox(),r=React.useContext(PointCloudContext.PointCloudContext),{ptSegmentInstance:s}=r,{t:g}=reactI18next.useTranslation(),{defaultAttribute:d}=useAttribute.useAttribute(),p=usePointCloudViews.usePointCloudViews(),{isPointCloudSegmentationPattern:C}=useStatus.useStatus(),w=ctx.useDispatch(),T={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},k={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"};React.useEffect(()=>{if(!!s)return s.on("syncPointCloudStatus",f),()=>{s.unbind("syncPointCloudStatus",f)}},[s]);const L=(n,b)=>{var _,P,E,y,I;const x=(_=m==null?void 0:m.attributeList)==null?void 0:_.map(S=>S.value===n?__spreadProps(__spreadValues({},S),{color:b}):S),v=__spreadProps(__spreadValues({},m),{attributeList:x}),N=JSON.stringify(v),O=u==null?void 0:u.map(S=>(S==null?void 0:S.step)===(l==null?void 0:l.step)?__spreadProps(__spreadValues({},S),{config:N}):S);(P=r==null?void 0:r.topViewInstance)==null||P.updateAttributeList(x),(E=r==null?void 0:r.sideViewInstance)==null||E.updateAttributeList(x),(y=r==null?void 0:r.backViewInstance)==null||y.updateAttributeList(x),(I=r==null?void 0:r.mainViewInstance)==null||I.setConfig(v),w(actionCreators.SetTaskStepList({stepList:O}))},j=n=>{p.updateViewsByDefaultSize&&p.updateViewsByDefaultSize(n)},B=n=>{isAllowUpdateInSegment({globalPattern:r.globalPattern,segmentStatus:i.segmentStatus})||o.setDefaultAttribute(n)},D=(n,b)=>{isAllowUpdateInSegment({globalPattern:r.globalPattern,segmentStatus:i.segmentStatus})||o.setSubAttribute(n,b)},h=t.map(n=>({label:n.key,value:n.value,color:n==null?void 0:n.color,limit:n==null?void 0:n.limit,isDefault:n==null?void 0:n.isDefault})),q=a||i.cacheSegData&&i.segmentStatus===lbUtils.EPointCloudSegmentStatus.Edit,V=C;return React__default.default.createElement("div",null,React__default.default.createElement("div",{style:T},g("Attribute")),React__default.default.createElement(index$2.default,{list:h,forbidDefault:!0,selectedAttribute:d!=null?d:"",attributeChanged:n=>B(n),updateColorConfig:L,enableColorPicker:c,updateSize:j,forbidShowLimitPopover:V}),React__default.default.createElement(antd.Divider,{style:{margin:0}}),q&&React__default.default.createElement(React__default.default.Fragment,null,e.map(n=>{var b,_,P,E,y,I,x;return(n==null?void 0:n.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12},key:n.value},React__default.default.createElement("div",{style:k},g("SubAttribute"),"-",n.key),((b=n.subSelected)==null?void 0:b.length)<5?React__default.default.createElement(index$2.default,{list:n.subSelected.map(v=>({label:v.key,value:v.value})),selectedAttribute:((P=(_=r.selectedPointCloudBox)==null?void 0:_.subAttribute)==null?void 0:P[n.value])||((y=(E=i.cacheSegData)==null?void 0:E.subAttribute)==null?void 0:y[n.value]),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:v=>D(n.value,v),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(x=(I=r.selectedPointCloudBox)==null?void 0:I.subAttribute)==null?void 0:x[n.value],placeholder:g("PleaseSelect"),onChange:v=>D(n.value,v),allowClear:!0},n.subSelected.map(v=>React__default.default.createElement(antd.Select.Option,{key:v.value,value:v.value},v.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))})))},renderSegmentTools=[{toolName:"LassoSelector",commonSvg:lassoSelector,selectedSvg:lassoSelector_a},{toolName:"RectSelector",commonSvg:icon_rect,selectedSvg:icon_rect_a},{toolName:"CircleSelector",commonSvg:circleSelector,selectedSvg:circleSelector_a}],PointCloudSegToolIcon=({toolInstance:t})=>{const{ptSegmentInstance:e}=React.useContext(PointCloudContext.PointCloudContext),[o,m]=React.useState("LassoSelector"),{t:u}=reactI18next.useTranslation();return React.useEffect(()=>{if(!e)return;const l=()=>{m("LassoSelector")},c=()=>{m("RectSelector")},i=()=>{m("CircleSelector")};return e.on("LassoSelector",l),e.on("RectSelector",c),e.on("CircleSelector",i),()=>{e.unbind("LassoSelector",l),e.unbind("RectSelector",c),e.unbind("CircleSelector",i)}},[e]),React__default.default.createElement("div",{className:`${index$3.sidebarCls}__level`},renderSegmentTools.map(l=>{const c=o===l.toolName;return React__default.default.createElement("span",{className:`${index$3.sidebarCls}__toolOption`,key:l.toolName,onClick:()=>e==null?void 0:e.emit(l.toolName)},React__default.default.createElement("img",{className:`${index$3.sidebarCls}__singleTool`,src:c?l==null?void 0:l.selectedSvg:l==null?void 0:l.commonSvg}),React__default.default.createElement("span",{className:index.classnames({[`${index$3.sidebarCls}__toolOption__selected`]:c})},u(l.toolName)))}))},PointCloudToolSidebar=({stepInfo:t,toolInstance:e,imgList:o,imgIndex:m,stepList:u,enableColorPicker:l})=>{var c,i;const{updatePointCloudPattern:f,pointCloudPattern:a,isPointCloudSegmentationPattern:r}=useStatus.useStatus(),s=index.jsonParser(t.config),g=(c=s==null?void 0:s.attributeList)!=null?c:[],d=(s==null?void 0:s.secondaryAttributeConfigurable)===!0?(i=s==null?void 0:s.inputList)!=null?i:[]:[];return r?React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudSegToolIcon,{toolInstance:e}),React__default.default.createElement(AttributeUpdater,{toolInstance:e,attributeList:g,subAttributeList:d,config:s,stepList:u,stepInfo:t,enableColorPicker:l})):React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:a,onChange:p=>f==null?void 0:f(p)}),React__default.default.createElement(AttributeUpdater,{toolInstance:e,attributeList:g,subAttributeList:d,config:s,stepList:u,stepInfo:t,enableColorPicker:l}),(s==null?void 0:s.trackConfigurable)===!0&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(BoxTrackIDInput,null),React__default.default.createElement(antd.Divider,{style:{margin:0}}),React__default.default.createElement(AnnotatedBox,{imgList:o,imgIndex:m})))},mapStateToProps=t=>{var e,o,m,u;const l=StepUtils.getCurrentStepInfo((e=t.annotation)==null?void 0:e.step,(o=t.annotation)==null?void 0:o.stepList),c=(m=t.annotation)==null?void 0:m.toolInstance,i=(u=t.annotation)==null?void 0:u.stepList;return{stepInfo:l,toolInstance:c,imgList:t.annotation.imgList,imgIndex:t.annotation.imgIndex,stepList:i}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudToolSidebar);exports.PointCloudSegToolIcon=PointCloudSegToolIcon,exports.default=PointCloudToolSidebar$1;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),icons=require("@ant-design/icons"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js"),index$1=require("./components/batchUpdateModal/index.js"),lbUtils=require("@labelbee/lb-utils"),index$2=require("../../../../components/attributeList/index.js"),useAttribute=require("../../../../components/pointCloudView/hooks/useAttribute.js"),lassoSelector=require("../../../../assets/annotation/pointCloudTool/lassoSelector.svg.js"),lassoSelector_a=require("../../../../assets/annotation/pointCloudTool/lassoSelector_a.svg.js"),circleSelector=require("../../../../assets/annotation/pointCloudTool/circleSelector.svg.js"),circleSelector_a=require("../../../../assets/annotation/pointCloudTool/circleSelector_a.svg.js"),icon_rect=require("../../../../assets/annotation/rectTool/icon_rect.svg.js"),icon_rect_a=require("../../../../assets/annotation/rectTool/icon_rect_a.svg.js"),index$3=require("../index.js"),actionCreators=require("../../../../store/annotation/actionCreators.js"),usePointCloudViews=require("../../../../components/pointCloudView/hooks/usePointCloudViews.js");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,e,o)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,__spreadValues=(t,e)=>{for(var o in e||(e={}))__hasOwnProp.call(e,o)&&__defNormalProp(t,o,e[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(e))__propIsEnum.call(e,o)&&__defNormalProp(t,o,e[o]);return t},__spreadProps=(t,e)=>__defProps(t,__getOwnPropDescs(e));const AnnotatedBox=({imgList:t,imgIndex:e})=>{const o=React.useContext(PointCloudContext.PointCloudContext),[m,u]=React.useState([]),{t:l}=reactI18next.useTranslation();React.useEffect(()=>{const s=t;let v=new Map;u(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:s,extraBoxList:c,ignoreIndexList:[e]}).filter(a=>!a.trackID||v.get(a.trackID)?!1:(v.set(a.trackID,!0),!0)).sort((a,r)=>{var i,f;const d=(i=a==null?void 0:a.trackID)!=null?i:0,p=(f=r==null?void 0:r.trackID)!=null?f:0;return d-p}).map(a=>{var r;return(r=a==null?void 0:a.trackID)!=null?r:0}))},[o.pointCloudBoxList,t]);const{pointCloudBoxList:c}=o;return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:16}},l("AllTrackIDs")),React__default.default.createElement("div",null,m.map(s=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:s,style:{color:"#666",marginBottom:8}},s))))},BoxTrackIDInput=()=>{const[t,e]=React.useState(!1),o=React.useContext(PointCloudContext.PointCloudContext),{pointCloudBoxList:m}=o,{selectedBox:u,updateSelectedBox:l}=useSingleBox.useSingleBox(),[c,s]=React.useState(""),{t:v}=reactI18next.useTranslation(),a=u==null?void 0:u.info.trackID,r=d=>!!m.find(C=>C.trackID===d&&C.id!==(u==null?void 0:u.info.id)),i=(d=!1)=>{const p=parseInt(c,10);if(d&&e(!1),isNaN(p)){antd.message.error(v("PositiveIntegerCheck"));return}if(c.indexOf(".")>-1){antd.message.error(v("NotAllowDecimalPointsInTrackID"));return}if(r(p)){antd.message.error(v("DuplicateTrackIDsExist"));return}if(!(p>0)){antd.message.error(v("PositiveIntegerCheck"));return}f(p)};React.useEffect(()=>{e(!1)},[a]);const f=d=>{var p;const C=l({trackID:d});(p=o==null?void 0:o.topViewInstance)==null||p.updatePolygonList(C!=null?C:[])};return React__default.default.createElement("div",{style:{padding:24}},React__default.default.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,v("CurrentBoxTrackIDs")),a&&React__default.default.createElement(index$1,{id:a,updateCurrentPolygonList:d=>f(d)})),React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},t&&a?React__default.default.createElement(antd.Input,{defaultValue:a,onChange:d=>{s(d.target.value)},disabled:!a,size:"small",onBlur:()=>{i()},onPressEnter:()=>{i(!0)}}):React__default.default.createElement("span",null,a),React__default.default.createElement(icons.EditFilled,{style:{color:"#999",marginLeft:16,cursor:typeof a!="undefined"?"pointer":"not-allowed"},onClick:()=>{a&&e(!t)}})))},isAllowUpdateInSegment=({segmentStatus:t,globalPattern:e})=>e===lbUtils.EPointCloudPattern.Segmentation&&![lbUtils.EPointCloudSegmentStatus.Edit,lbUtils.EPointCloudSegmentStatus.Ready].includes(t),AttributeUpdater=({attributeList:t,subAttributeList:e,toolInstance:o,config:m,stepList:u,stepInfo:l,enableColorPicker:c})=>{const[s,v]=React.useState({segmentStatus:lbUtils.EPointCloudSegmentStatus.Ready}),{selectedBox:a}=useSingleBox.useSingleBox(),r=React.useContext(PointCloudContext.PointCloudContext),{ptSegmentInstance:i}=r,{t:f}=reactI18next.useTranslation(),{defaultAttribute:d}=useAttribute.useAttribute(),p=usePointCloudViews.usePointCloudViews(),{isPointCloudSegmentationPattern:C}=useStatus.useStatus(),k=ctx.useDispatch(),L={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},h={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"};React.useEffect(()=>{if(!!i)return i.on("syncPointCloudStatus",v),()=>{i.unbind("syncPointCloudStatus",v)}},[i]);const j=(n,_)=>{var b,P,E,y,I;const x=(b=m==null?void 0:m.attributeList)==null?void 0:b.map(S=>S.value===n?__spreadProps(__spreadValues({},S),{color:_}):S),D=__spreadProps(__spreadValues({},m),{attributeList:x}),w=JSON.stringify(D),g=u==null?void 0:u.map(S=>(S==null?void 0:S.step)===(l==null?void 0:l.step)?__spreadProps(__spreadValues({},S),{config:w}):S);(P=r==null?void 0:r.topViewInstance)==null||P.updateAttributeList(x),(E=r==null?void 0:r.sideViewInstance)==null||E.updateAttributeList(x),(y=r==null?void 0:r.backViewInstance)==null||y.updateAttributeList(x),(I=r==null?void 0:r.mainViewInstance)==null||I.setConfig(D),k(actionCreators.SetTaskStepList({stepList:g}))},B=n=>{p.updateViewsByDefaultSize&&p.updateViewsByDefaultSize(n)},q=n=>{isAllowUpdateInSegment({globalPattern:r.globalPattern,segmentStatus:s.segmentStatus})||o.setDefaultAttribute(n)},T=(n,_)=>{isAllowUpdateInSegment({globalPattern:r.globalPattern,segmentStatus:s.segmentStatus})||o.setSubAttribute(n,_)},V=t.map(n=>({label:n.key,value:n.value,color:n==null?void 0:n.color,limit:n==null?void 0:n.limit,isDefault:n==null?void 0:n.isDefault})),N=a||s.cacheSegData&&s.segmentStatus===lbUtils.EPointCloudSegmentStatus.Edit,O=C;return React__default.default.createElement("div",null,React__default.default.createElement("div",{style:L},f("Attribute")),React__default.default.createElement(index$2.default,{list:V,forbidDefault:!0,selectedAttribute:d!=null?d:"",attributeChanged:n=>q(n),updateColorConfig:j,enableColorPicker:c,updateSize:B,forbidShowLimitPopover:O}),React__default.default.createElement(antd.Divider,{style:{margin:0}}),N&&React__default.default.createElement(React__default.default.Fragment,null,e.map(n=>{var _,b,P,E,y,I,x,D,w;return(n==null?void 0:n.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12},key:n.value},React__default.default.createElement("div",{style:h},f("SubAttribute"),"-",n.key),((_=n.subSelected)==null?void 0:_.length)<5?React__default.default.createElement(index$2.default,{list:n.subSelected.map(g=>({label:g.key,value:g.value})),selectedAttribute:((P=(b=r.selectedPointCloudBox)==null?void 0:b.subAttribute)==null?void 0:P[n.value])||((y=(E=s.cacheSegData)==null?void 0:E.subAttribute)==null?void 0:y[n.value]),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:g=>T(n.value,g),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:((x=(I=r.selectedPointCloudBox)==null?void 0:I.subAttribute)==null?void 0:x[n.value])||((w=(D=s.cacheSegData)==null?void 0:D.subAttribute)==null?void 0:w[n.value]),placeholder:f("PleaseSelect"),onChange:g=>T(n.value,g),allowClear:!0},n.subSelected.map(g=>React__default.default.createElement(antd.Select.Option,{key:g.value,value:g.value},g.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))})))},renderSegmentTools=[{toolName:"LassoSelector",commonSvg:lassoSelector,selectedSvg:lassoSelector_a},{toolName:"RectSelector",commonSvg:icon_rect,selectedSvg:icon_rect_a},{toolName:"CircleSelector",commonSvg:circleSelector,selectedSvg:circleSelector_a}],PointCloudSegToolIcon=({toolInstance:t})=>{const{ptSegmentInstance:e}=React.useContext(PointCloudContext.PointCloudContext),[o,m]=React.useState("LassoSelector"),{t:u}=reactI18next.useTranslation();return React.useEffect(()=>{if(!e)return;const l=()=>{m("LassoSelector")},c=()=>{m("RectSelector")},s=()=>{m("CircleSelector")};return e.on("LassoSelector",l),e.on("RectSelector",c),e.on("CircleSelector",s),()=>{e.unbind("LassoSelector",l),e.unbind("RectSelector",c),e.unbind("CircleSelector",s)}},[e]),React__default.default.createElement("div",{className:`${index$3.sidebarCls}__level`},renderSegmentTools.map(l=>{const c=o===l.toolName;return React__default.default.createElement("span",{className:`${index$3.sidebarCls}__toolOption`,key:l.toolName,onClick:()=>e==null?void 0:e.emit(l.toolName)},React__default.default.createElement("img",{className:`${index$3.sidebarCls}__singleTool`,src:c?l==null?void 0:l.selectedSvg:l==null?void 0:l.commonSvg}),React__default.default.createElement("span",{className:index.classnames({[`${index$3.sidebarCls}__toolOption__selected`]:c})},u(l.toolName)))}))},PointCloudToolSidebar=({stepInfo:t,toolInstance:e,imgList:o,imgIndex:m,stepList:u,enableColorPicker:l})=>{var c,s;const{updatePointCloudPattern:v,pointCloudPattern:a,isPointCloudSegmentationPattern:r}=useStatus.useStatus(),i=index.jsonParser(t.config),f=(c=i==null?void 0:i.attributeList)!=null?c:[],d=(i==null?void 0:i.secondaryAttributeConfigurable)===!0?(s=i==null?void 0:i.inputList)!=null?s:[]:[];return r?React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudSegToolIcon,{toolInstance:e}),React__default.default.createElement(AttributeUpdater,{toolInstance:e,attributeList:f,subAttributeList:d,config:i,stepList:u,stepInfo:t,enableColorPicker:l})):React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:a,onChange:p=>v==null?void 0:v(p)}),React__default.default.createElement(AttributeUpdater,{toolInstance:e,attributeList:f,subAttributeList:d,config:i,stepList:u,stepInfo:t,enableColorPicker:l}),(i==null?void 0:i.trackConfigurable)===!0&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(BoxTrackIDInput,null),React__default.default.createElement(antd.Divider,{style:{margin:0}}),React__default.default.createElement(AnnotatedBox,{imgList:o,imgIndex:m})))},mapStateToProps=t=>{var e,o,m,u;const l=StepUtils.getCurrentStepInfo((e=t.annotation)==null?void 0:e.step,(o=t.annotation)==null?void 0:o.stepList),c=(m=t.annotation)==null?void 0:m.toolInstance,s=(u=t.annotation)==null?void 0:u.stepList;return{stepInfo:l,toolInstance:c,imgList:t.annotation.imgList,imgIndex:t.annotation.imgIndex,stepList:s}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudToolSidebar);exports.PointCloudSegToolIcon=PointCloudSegToolIcon,exports.default=PointCloudToolSidebar$1;
@@ -1 +1 @@
1
- import v,{useState as A,useRef as b,useImperativeHandle as V,useEffect as u}from"react";import{ViewOperation as j,ImgUtils as Z}from"@labelbee/lb-annotation";import{Spin as k}from"antd/es";import D from"../../hooks/useRefCache.js";var M=Object.defineProperty,y=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable,O=(e,t,o)=>t in e?M(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,g=(e,t)=>{for(var o in t||(t={}))U.call(t,o)&&O(e,o,t[o]);if(y)for(var o of y(t))x.call(t,o)&&O(e,o,t[o]);return e};const _={width:455,height:100},F=e=>{if(!e)return _;if(e.width&&e.height)return e;const t=g({},e);return t.width||(t.width=_.width),t.height||(t.height=_.height),t},H=(e,t)=>{var o,w;const{src:p,annotations:s=[],style:z={stroke:"blue",thickness:3},zoomChange:c,backgroundStyle:P={},onChange:d,showLoading:S=!1,globalStyle:C,afterImgOnLoad:L}=e,f=F(e.size),[R,h]=A(!1),m=b(null),r=b(),I=D(L);V(t,()=>{const n=r.current;return n?{zoomIn:()=>n.zoomChanged(!0),zoomOut:()=>n.zoomChanged(!1),initImgPos:()=>n.initImgPos(),toolInstance:n}:{}},[r.current]),u(()=>(m.current&&(r.current=new j({container:m.current,size:f,style:z,annotations:s,config:"{}",zoomInfo:e.zoomInfo,staticMode:e.staticMode}),r.current.init()),()=>{var n;(n=r.current)==null||n.destroy()}),[]),u(()=>{var n;r.current&&(h(!0),(n=r.current)==null||n.setLoading(!0),Z.load(p).then(a=>{var i,l;(i=r.current)==null||i.setLoading(!1),h(!1),(l=r.current)==null||l.setImgNode(a),I.current&&I.current(a)}).catch(()=>{var a;(a=r.current)==null||a.setLoading(!1),h(!1)}))},[p]),u(()=>{r.current&&r.current.updateData(s)},[s]),u(()=>{const n=r.current;(n==null?void 0:n.setSize)&&(n.setSize(f),n.initPosition())},[(o=e.size)==null?void 0:o.width,(w=e.size)==null?void 0:w.height]),u(()=>{var n,a;return r.current&&((n=r.current)==null||n.on("onChange",(...i)=>{d==null||d.apply(null,i)}),(a=r.current)==null||a.on("renderZoom",i=>{c&&c(i)})),()=>{var i,l;(i=r.current)==null||i.unbindAll("onChange"),(l=r.current)==null||l.unbindAll("renderZoom")}},[c,d]);const E=v.createElement("div",{ref:m,style:g(g({position:"relative"},f),P)});return v.createElement(k,{spinning:S||R,delay:300,style:C},E)};var N=v.forwardRef(H);export{N as default};
1
+ import p,{useState as j,useRef as f,useImperativeHandle as U,useEffect as c}from"react";import{ViewOperation as Z,ImgUtils as k}from"@labelbee/lb-annotation";import{Spin as M}from"antd/es";import x from"../../hooks/useRefCache.js";var F=Object.defineProperty,z=Object.getOwnPropertySymbols,H=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable,S=(t,n,o)=>n in t?F(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,w=(t,n)=>{for(var o in n||(n={}))H.call(n,o)&&S(t,o,n[o]);if(z)for(var o of z(n))N.call(n,o)&&S(t,o,n[o]);return t};const I={width:455,height:100},T=t=>{if(!t)return I;if(t.width&&t.height)return t;const n=w({},t);return n.width||(n.width=I.width),n.height||(n.height=I.height),n},$=(t,n)=>{var o,b;const{src:y,annotations:s=[],style:P={stroke:"blue",thickness:3},zoomChange:h,backgroundStyle:R={},onChange:v,showLoading:C=!1,globalStyle:L,afterImgOnLoad:A}=t,m=T(t.size),[E,g]=j(!1),_=f(null),r=f(),O=x(A),l=f([]),d=f(!0);U(n,()=>{const e=r.current;return e?{zoomIn:()=>e.zoomChanged(!0),zoomOut:()=>e.zoomChanged(!1),initImgPos:()=>e.initImgPos(),toolInstance:e}:{}},[r.current]),c(()=>(_.current&&(r.current=new Z({container:_.current,size:m,style:P,annotations:s,config:"{}",zoomInfo:t.zoomInfo,staticMode:t.staticMode}),r.current.init()),()=>{var e;(e=r.current)==null||e.destroy()}),[]),c(()=>{var e;r.current&&(g(!0),(e=r.current)==null||e.setLoading(!0),k.load(y).then(i=>{var a,u;(a=r.current)==null||a.setLoading(!1),g(!1),(u=r.current)==null||u.setImgNode(i),O.current&&O.current(i)}).catch(()=>{var i;(i=r.current)==null||i.setLoading(!1),g(!1)}))},[y]),c(()=>{if(d.current===!1){l.current.push(s);return}const e=()=>{d.current=!0,l.current=[]},i=()=>{var a;const u=l.current.length;if(u>0){const V=l.current[u-1];l.current=[],(a=r.current)==null||a.updateData(V).then(i).catch(e)}else d.current=!0};r.current&&(d.current=!1,r.current.updateData(s).then(i).catch(e))},[s]),c(()=>{const e=r.current;(e==null?void 0:e.setSize)&&(e.setSize(m),e.initPosition())},[(o=t.size)==null?void 0:o.width,(b=t.size)==null?void 0:b.height]),c(()=>{var e,i;return r.current&&((e=r.current)==null||e.on("onChange",(...a)=>{v==null||v.apply(null,a)}),(i=r.current)==null||i.on("renderZoom",a=>{h&&h(a)})),()=>{var a,u;(a=r.current)==null||a.unbindAll("onChange"),(u=r.current)==null||u.unbindAll("renderZoom")}},[h,v]);const D=p.createElement("div",{ref:_,style:w(w({position:"relative"},m),R)});return p.createElement(M,{spinning:C||E,delay:300,style:L},D)};var q=p.forwardRef($);export{q as default};
@@ -1 +1 @@
1
- import{a2MapStateToProps as j}from"../../store/annotation/map.js";import{LabelBeeContext as k}from"../../store/ctx.js";import p,{useContext as L,useRef as m,useState as y,useEffect as f,useCallback as _}from"react";import M from"../AnnotationView/index.js";import{connect as z}from"react-redux";import{PointCloudContext as V}from"./PointCloudContext.js";import B from"./components/TitleButton/index.js";import{Spin as R}from"antd";import A from"../../_virtual/highlightSegmentWorker.js";import{pointMappingLidar2image as T}from"@labelbee/lb-annotation";var W=Object.defineProperty,G=Object.defineProperties,H=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,w=(t,o,r)=>o in t?W(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,$=(t,o)=>{for(var r in o||(o={}))N.call(o,r)&&w(t,r,o[r]);if(b)for(var r of b(o))Y.call(o,r)&&w(t,r,o[r]);return t},q=(t,o)=>G(t,H(o));const J=({path:t,url:o,calib:r,pcdUrl:s,highlightAttribute:l})=>{const{ptSegmentInstance:e,cacheImageNodeSize:x,imageSizes:D}=L(V),O=m(null),d=m(0),g=m({}),u=m(),[v,P]=y([]),[E,C]=y(!1);f(()=>()=>{d.current=0,g.current={},u.current=void 0},[s]);const h=_(()=>{var n;if(d.current=d.current+1,d.current===2){const i=(n=e==null?void 0:e.store)==null?void 0:n.originPoints;if(!i||!u.current){console.error("cacheMappingPCD2Img Error",{path:t,points:i,filterSize:u.current});return}g.current=T(i,r,u.current).pcdMapping}},[e]),S=_((n,i)=>{if(n&&u.current){const a=g.current,c=new A;C(!0),c.postMessage({cacheMap:a,indexes:n,defaultRGBA:i}),c.onmessage=I=>{P(I.data.annotations),c.terminate(),C(!1)}}},[]);f(()=>{if(!(e==null?void 0:e.store))return;const n=e.store.getHighlightAttribute(l!=null?l:""),i=e==null?void 0:e.getColorFromConfig(l!=null?l:"");S(n.flat(),i.stroke)},[l,e]),f(()=>{if(e){const n=({newAttribute:i})=>{const a=e==null?void 0:e.getColorFromConfig(i);a&&P(v.map(c=>q($({},c),{defaultRGBA:a.stroke})))};return e.on("updateDefaultAttribute",n),()=>{e.unbind("updateDefaultAttribute",n)}}},[e,v]),f(()=>{if(e){const n=i=>{if(i.cacheSegData){const{cacheSegData:a}=i;if(a==null?void 0:a.indexes){const c=e.getColorFromConfig(a.attribute);S(a==null?void 0:a.indexes,c.stroke)}}else P([])};return e.on("syncPointCloudStatus",n),e.on("loadPCDFileEnd",h),()=>{e.unbind("syncPointCloudStatus",n),e.unbind("loadPCDFileEnd",h)}}},[e,s,D]);const F=n=>{x({path:t,imgNode:n}),u.current={width:n.width,height:n.height},h()};return p.createElement("div",{key:t,style:{position:"relative"},ref:O},p.createElement(B,{title:r.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF",position:"absolute",top:10,left:10,zIndex:1}}),p.createElement(R,{spinning:E,delay:1e3},p.createElement(M,{size:{width:300,height:200},key:t,src:o,annotations:v,afterImgOnLoad:F})))},K=({currentData:t,highlightAttribute:o})=>{var r;const s=(r=t.mappingImgList)!=null?r:[];return(s==null?void 0:s.length)>0?p.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},s==null?void 0:s.map((l,e)=>l.calib&&p.createElement(J,{key:l.path,path:l.path,url:l.url,calib:l.calib,pcdUrl:t.url,highlightAttribute:o}))):null};var Q=z(j,null,null,{context:k})(K);export{Q as default};
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 m,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:s,highlightAttribute:l})=>{const{ptSegmentInstance:e,cacheImageNodeSize:O,imageSizes:E}=R(T),F=m(null),f=m(0),v=m({}),u=m(),[h,P]=w([]),[I,_]=w(!1),S=m(void 0);g(()=>()=>{f.current=0,v.current={},u.current=void 0},[s]);const C=V(()=>{var r;if(f.current=f.current+1,f.current===2){const i=(r=e==null?void 0:e.store)==null?void 0:r.originPoints;if(!i||!u.current){console.error("cacheMappingPCD2Img Error",{path:t,points:i,filterSize:u.current});return}v.current=Y(i,n,u.current).pcdMapping}},[e]),b=B(()=>$((i,a)=>{var c,y;if(i&&u.current){S.current&&((y=(c=S.current)==null?void 0:c.terminate)==null||y.call(c));const k=v.current,p=new N;p.current=p,_(!0),p.postMessage({cacheMap:k,indexes:i,defaultRGBA:a}),p.onmessage=M=>{P(M.data.annotations),p.terminate(),_(!1),p.current=void 0}}},100),[]);g(()=>{if(!(e==null?void 0:e.store))return;const r=e.store.getHighlightAttribute(l!=null?l:""),i=e==null?void 0:e.getColorFromConfig(l!=null?l:"");b(r.flat(),i.stroke)},[l,e]),g(()=>{if(e){const r=({newAttribute:i})=>{const a=e==null?void 0:e.getColorFromConfig(i);a&&P(h.map(c=>Z(X({},c),{defaultRGBA:a.stroke})))};return e.on("updateDefaultAttribute",r),()=>{e.unbind("updateDefaultAttribute",r)}}},[e,h]),g(()=>{if(e){const r=i=>{if(i.cacheSegData){const{cacheSegData:a}=i;if(a==null?void 0:a.indexes){const c=e.getColorFromConfig(a.attribute);b(a==null?void 0:a.indexes,c.stroke)}}else P([])};return e.on("syncPointCloudStatus",r),e.on("loadPCDFileEnd",C),()=>{e.unbind("syncPointCloudStatus",r),e.unbind("loadPCDFileEnd",C)}}},[e,s,E]);const j=r=>{O({path:t,imgNode:r}),u.current={width:r.width,height:r.height},C()};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 s=(n=t.mappingImgList)!=null?n:[];return(s==null?void 0:s.length)>0?d.createElement("div",{style:{position:"absolute",height:"100%",overflowY:"scroll",zIndex:100,width:300}},s==null?void 0:s.map((l,e)=>l.calib&&d.createElement(ee,{key:l.path,path:l.path,url:l.url,calib:l.calib,pcdUrl:t.url,highlightAttribute:o}))):null};var oe=W(L,null,null,{context:z})(te);export{oe as default};
@@ -1 +1 @@
1
- import e,{useContext as k,useState as D,useEffect as L}from"react";import{EditFilled as rt}from"@ant-design/icons";import{ToolIcons as at}from"../ToolIcons.js";import{cTool as it}from"@labelbee/lb-annotation";import{PointCloudContext as T}from"../../../../components/pointCloudView/PointCloudContext.js";import{Divider as N,Tag as st,Input as ct,Select as F,message as h}from"antd";import ut from"../../../../utils/StepUtils.js";import{connect as dt}from"react-redux";import{jsonParser as mt,classnames as pt}from"../../../../utils/index.js";import{useStatus as R}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as U}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as B}from"react-i18next";import{LabelBeeContext as gt,useDispatch as ft}from"../../../../store/ctx.js";import vt from"./components/batchUpdateModal/index.js";import{PointCloudUtils as St,EPointCloudSegmentStatus as j,EPointCloudPattern as Ct}from"@labelbee/lb-utils";import z from"../../../../components/attributeList/index.js";import{useAttribute as bt}from"../../../../components/pointCloudView/hooks/useAttribute.js";import _t from"../../../../assets/annotation/pointCloudTool/lassoSelector.svg.js";import xt from"../../../../assets/annotation/pointCloudTool/lassoSelector_a.svg.js";import Pt from"../../../../assets/annotation/pointCloudTool/circleSelector.svg.js";import Et from"../../../../assets/annotation/pointCloudTool/circleSelector_a.svg.js";import yt from"../../../../assets/annotation/rectTool/icon_rect.svg.js";import It from"../../../../assets/annotation/rectTool/icon_rect_a.svg.js";import{sidebarCls as V}from"../index.js";import{SetTaskStepList as wt}from"../../../../store/annotation/actionCreators.js";import{usePointCloudViews as Dt}from"../../../../components/pointCloudView/hooks/usePointCloudViews.js";var kt=Object.defineProperty,Lt=Object.defineProperties,Tt=Object.getOwnPropertyDescriptors,M=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable,W=(o,t,l)=>t in o?kt(o,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):o[t]=l,O=(o,t)=>{for(var l in t||(t={}))ht.call(t,l)&&W(o,l,t[l]);if(M)for(var l of M(t))Bt.call(t,l)&&W(o,l,t[l]);return o},A=(o,t)=>Lt(o,Tt(t));const jt=({imgList:o,imgIndex:t})=>{const l=k(T),[p,u]=D([]),{t:r}=B();L(()=>{const c=o;let f=new Map;u(St.getAllPointCloudResult({imgList:c,extraBoxList:d,ignoreIndexList:[t]}).filter(a=>!a.trackID||f.get(a.trackID)?!1:(f.set(a.trackID,!0),!0)).sort((a,i)=>{var s,S;const m=(s=a==null?void 0:a.trackID)!=null?s:0,g=(S=i==null?void 0:i.trackID)!=null?S:0;return m-g}).map(a=>{var i;return(i=a==null?void 0:a.trackID)!=null?i:0}))},[l.pointCloudBoxList,o]);const{pointCloudBoxList:d}=l;return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:16}},r("AllTrackIDs")),e.createElement("div",null,p.map(c=>e.createElement(st,{color:"#F3F4FF",key:c,style:{color:"#666",marginBottom:8}},c))))},Vt=()=>{const[o,t]=D(!1),l=k(T),{pointCloudBoxList:p}=l,{selectedBox:u,updateSelectedBox:r}=U(),[d,c]=D(""),{t:f}=B(),a=u==null?void 0:u.info.trackID,i=m=>!!p.find(b=>b.trackID===m&&b.id!==(u==null?void 0:u.info.id)),s=(m=!1)=>{const g=parseInt(d,10);if(m&&t(!1),isNaN(g)){h.error(f("PositiveIntegerCheck"));return}if(d.indexOf(".")>-1){h.error(f("NotAllowDecimalPointsInTrackID"));return}if(i(g)){h.error(f("DuplicateTrackIDsExist"));return}if(!(g>0)){h.error(f("PositiveIntegerCheck"));return}S(g)};L(()=>{t(!1)},[a]);const S=m=>{var g;const b=r({trackID:m});(g=l==null?void 0:l.topViewInstance)==null||g.updatePolygonList(b!=null?b:[])};return e.createElement("div",{style:{padding:24}},e.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},e.createElement("span",null,f("CurrentBoxTrackIDs")),a&&e.createElement(vt,{id:a,updateCurrentPolygonList:m=>S(m)})),e.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},o&&a?e.createElement(ct,{defaultValue:a,onChange:m=>{c(m.target.value)},disabled:!a,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):e.createElement("span",null,a),e.createElement(rt,{style:{color:"#999",marginLeft:16,cursor:typeof a!="undefined"?"pointer":"not-allowed"},onClick:()=>{a&&t(!o)}})))},J=({segmentStatus:o,globalPattern:t})=>t===Ct.Segmentation&&![j.Edit,j.Ready].includes(o),q=({attributeList:o,subAttributeList:t,toolInstance:l,config:p,stepList:u,stepInfo:r,enableColorPicker:d})=>{const[c,f]=D({segmentStatus:j.Ready}),{selectedBox:a}=U(),i=k(T),{ptSegmentInstance:s}=i,{t:S}=B(),{defaultAttribute:m}=bt(),g=Dt(),{isPointCloudSegmentationPattern:b}=R(),H=ft(),K={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},Q={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"};L(()=>{if(!!s)return s.on("syncPointCloudStatus",f),()=>{s.unbind("syncPointCloudStatus",f)}},[s]);const X=(n,x)=>{var P,E,y,I,w;const _=(P=p==null?void 0:p.attributeList)==null?void 0:P.map(C=>C.value===n?A(O({},C),{color:x}):C),v=A(O({},p),{attributeList:_}),nt=JSON.stringify(v),lt=u==null?void 0:u.map(C=>(C==null?void 0:C.step)===(r==null?void 0:r.step)?A(O({},C),{config:nt}):C);(E=i==null?void 0:i.topViewInstance)==null||E.updateAttributeList(_),(y=i==null?void 0:i.sideViewInstance)==null||y.updateAttributeList(_),(I=i==null?void 0:i.backViewInstance)==null||I.updateAttributeList(_),(w=i==null?void 0:i.mainViewInstance)==null||w.setConfig(v),H(wt({stepList:lt}))},Y=n=>{g.updateViewsByDefaultSize&&g.updateViewsByDefaultSize(n)},Z=n=>{J({globalPattern:i.globalPattern,segmentStatus:c.segmentStatus})||l.setDefaultAttribute(n)},$=(n,x)=>{J({globalPattern:i.globalPattern,segmentStatus:c.segmentStatus})||l.setSubAttribute(n,x)},tt=o.map(n=>({label:n.key,value:n.value,color:n==null?void 0:n.color,limit:n==null?void 0:n.limit,isDefault:n==null?void 0:n.isDefault})),et=a||c.cacheSegData&&c.segmentStatus===j.Edit,ot=b;return e.createElement("div",null,e.createElement("div",{style:K},S("Attribute")),e.createElement(z,{list:tt,forbidDefault:!0,selectedAttribute:m!=null?m:"",attributeChanged:n=>Z(n),updateColorConfig:X,enableColorPicker:d,updateSize:Y,forbidShowLimitPopover:ot}),e.createElement(N,{style:{margin:0}}),et&&e.createElement(e.Fragment,null,t.map(n=>{var x,P,E,y,I,w,_;return(n==null?void 0:n.subSelected)&&e.createElement("div",{style:{marginTop:12},key:n.value},e.createElement("div",{style:Q},S("SubAttribute"),"-",n.key),((x=n.subSelected)==null?void 0:x.length)<5?e.createElement(z,{list:n.subSelected.map(v=>({label:v.key,value:v.value})),selectedAttribute:((E=(P=i.selectedPointCloudBox)==null?void 0:P.subAttribute)==null?void 0:E[n.value])||((I=(y=c.cacheSegData)==null?void 0:y.subAttribute)==null?void 0:I[n.value]),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:v=>$(n.value,v),style:{marginBottom:12}}):e.createElement(F,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(_=(w=i.selectedPointCloudBox)==null?void 0:w.subAttribute)==null?void 0:_[n.value],placeholder:S("PleaseSelect"),onChange:v=>$(n.value,v),allowClear:!0},n.subSelected.map(v=>e.createElement(F.Option,{key:v.value,value:v.value},v.key))),e.createElement(N,{style:{margin:0}}))})))},Nt=[{toolName:"LassoSelector",commonSvg:_t,selectedSvg:xt},{toolName:"RectSelector",commonSvg:yt,selectedSvg:It},{toolName:"CircleSelector",commonSvg:Pt,selectedSvg:Et}],G=({toolInstance:o})=>{const{ptSegmentInstance:t}=k(T),[l,p]=D("LassoSelector"),{t:u}=B();return L(()=>{if(!t)return;const r=()=>{p("LassoSelector")},d=()=>{p("RectSelector")},c=()=>{p("CircleSelector")};return t.on("LassoSelector",r),t.on("RectSelector",d),t.on("CircleSelector",c),()=>{t.unbind("LassoSelector",r),t.unbind("RectSelector",d),t.unbind("CircleSelector",c)}},[t]),e.createElement("div",{className:`${V}__level`},Nt.map(r=>{const d=l===r.toolName;return e.createElement("span",{className:`${V}__toolOption`,key:r.toolName,onClick:()=>t==null?void 0:t.emit(r.toolName)},e.createElement("img",{className:`${V}__singleTool`,src:d?r==null?void 0:r.selectedSvg:r==null?void 0:r.commonSvg}),e.createElement("span",{className:pt({[`${V}__toolOption__selected`]:d})},u(r.toolName)))}))},Ot=({stepInfo:o,toolInstance:t,imgList:l,imgIndex:p,stepList:u,enableColorPicker:r})=>{var d,c;const{updatePointCloudPattern:f,pointCloudPattern:a,isPointCloudSegmentationPattern:i}=R(),s=mt(o.config),S=(d=s==null?void 0:s.attributeList)!=null?d:[],m=(s==null?void 0:s.secondaryAttributeConfigurable)===!0?(c=s==null?void 0:s.inputList)!=null?c:[]:[];return i?e.createElement(e.Fragment,null,e.createElement(G,{toolInstance:t}),e.createElement(q,{toolInstance:t,attributeList:S,subAttributeList:m,config:s,stepList:u,stepInfo:o,enableColorPicker:r})):e.createElement(e.Fragment,null,e.createElement(at,{toolName:it.EPointCloudName.PointCloud,selectedToolName:a,onChange:g=>f==null?void 0:f(g)}),e.createElement(q,{toolInstance:t,attributeList:S,subAttributeList:m,config:s,stepList:u,stepInfo:o,enableColorPicker:r}),(s==null?void 0:s.trackConfigurable)===!0&&e.createElement(e.Fragment,null,e.createElement(Vt,null),e.createElement(N,{style:{margin:0}}),e.createElement(jt,{imgList:l,imgIndex:p})))},At=o=>{var t,l,p,u;const r=ut.getCurrentStepInfo((t=o.annotation)==null?void 0:t.step,(l=o.annotation)==null?void 0:l.stepList),d=(p=o.annotation)==null?void 0:p.toolInstance,c=(u=o.annotation)==null?void 0:u.stepList;return{stepInfo:r,toolInstance:d,imgList:o.annotation.imgList,imgIndex:o.annotation.imgIndex,stepList:c}};var $t=dt(At,null,null,{context:gt})(Ot);export{G as PointCloudSegToolIcon,$t as default};
1
+ import t,{useContext as T,useState as k,useEffect as h}from"react";import{EditFilled as re}from"@ant-design/icons";import{ToolIcons as ae}from"../ToolIcons.js";import{cTool as ie}from"@labelbee/lb-annotation";import{PointCloudContext as B}from"../../../../components/pointCloudView/PointCloudContext.js";import{Divider as A,Tag as se,Input as ce,Select as U,message as j}from"antd";import ue from"../../../../utils/StepUtils.js";import{connect as de}from"react-redux";import{jsonParser as me,classnames as pe}from"../../../../utils/index.js";import{useStatus as z}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as M}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as V}from"react-i18next";import{LabelBeeContext as ge,useDispatch as ve}from"../../../../store/ctx.js";import fe from"./components/batchUpdateModal/index.js";import{PointCloudUtils as Se,EPointCloudSegmentStatus as N,EPointCloudPattern as Ce}from"@labelbee/lb-utils";import W from"../../../../components/attributeList/index.js";import{useAttribute as be}from"../../../../components/pointCloudView/hooks/useAttribute.js";import _e from"../../../../assets/annotation/pointCloudTool/lassoSelector.svg.js";import xe from"../../../../assets/annotation/pointCloudTool/lassoSelector_a.svg.js";import Pe from"../../../../assets/annotation/pointCloudTool/circleSelector.svg.js";import Ee from"../../../../assets/annotation/pointCloudTool/circleSelector_a.svg.js";import ye from"../../../../assets/annotation/rectTool/icon_rect.svg.js";import Ie from"../../../../assets/annotation/rectTool/icon_rect_a.svg.js";import{sidebarCls as O}from"../index.js";import{SetTaskStepList as De}from"../../../../store/annotation/actionCreators.js";import{usePointCloudViews as we}from"../../../../components/pointCloudView/hooks/usePointCloudViews.js";var ke=Object.defineProperty,Le=Object.defineProperties,Te=Object.getOwnPropertyDescriptors,J=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,Be=Object.prototype.propertyIsEnumerable,q=(n,e,l)=>e in n?ke(n,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):n[e]=l,$=(n,e)=>{for(var l in e||(e={}))he.call(e,l)&&q(n,l,e[l]);if(J)for(var l of J(e))Be.call(e,l)&&q(n,l,e[l]);return n},F=(n,e)=>Le(n,Te(e));const je=({imgList:n,imgIndex:e})=>{const l=T(B),[p,u]=k([]),{t:r}=V();h(()=>{const s=n;let v=new Map;u(Se.getAllPointCloudResult({imgList:s,extraBoxList:d,ignoreIndexList:[e]}).filter(a=>!a.trackID||v.get(a.trackID)?!1:(v.set(a.trackID,!0),!0)).sort((a,i)=>{var c,f;const m=(c=a==null?void 0:a.trackID)!=null?c:0,g=(f=i==null?void 0:i.trackID)!=null?f:0;return m-g}).map(a=>{var i;return(i=a==null?void 0:a.trackID)!=null?i:0}))},[l.pointCloudBoxList,n]);const{pointCloudBoxList:d}=l;return t.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},t.createElement("div",{style:{marginBottom:16}},r("AllTrackIDs")),t.createElement("div",null,p.map(s=>t.createElement(se,{color:"#F3F4FF",key:s,style:{color:"#666",marginBottom:8}},s))))},Ve=()=>{const[n,e]=k(!1),l=T(B),{pointCloudBoxList:p}=l,{selectedBox:u,updateSelectedBox:r}=M(),[d,s]=k(""),{t:v}=V(),a=u==null?void 0:u.info.trackID,i=m=>!!p.find(b=>b.trackID===m&&b.id!==(u==null?void 0:u.info.id)),c=(m=!1)=>{const g=parseInt(d,10);if(m&&e(!1),isNaN(g)){j.error(v("PositiveIntegerCheck"));return}if(d.indexOf(".")>-1){j.error(v("NotAllowDecimalPointsInTrackID"));return}if(i(g)){j.error(v("DuplicateTrackIDsExist"));return}if(!(g>0)){j.error(v("PositiveIntegerCheck"));return}f(g)};h(()=>{e(!1)},[a]);const f=m=>{var g;const b=r({trackID:m});(g=l==null?void 0:l.topViewInstance)==null||g.updatePolygonList(b!=null?b:[])};return t.createElement("div",{style:{padding:24}},t.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},t.createElement("span",null,v("CurrentBoxTrackIDs")),a&&t.createElement(fe,{id:a,updateCurrentPolygonList:m=>f(m)})),t.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},n&&a?t.createElement(ce,{defaultValue:a,onChange:m=>{s(m.target.value)},disabled:!a,size:"small",onBlur:()=>{c()},onPressEnter:()=>{c(!0)}}):t.createElement("span",null,a),t.createElement(re,{style:{color:"#999",marginLeft:16,cursor:typeof a!="undefined"?"pointer":"not-allowed"},onClick:()=>{a&&e(!n)}})))},G=({segmentStatus:n,globalPattern:e})=>e===Ce.Segmentation&&![N.Edit,N.Ready].includes(n),H=({attributeList:n,subAttributeList:e,toolInstance:l,config:p,stepList:u,stepInfo:r,enableColorPicker:d})=>{const[s,v]=k({segmentStatus:N.Ready}),{selectedBox:a}=M(),i=T(B),{ptSegmentInstance:c}=i,{t:f}=V(),{defaultAttribute:m}=be(),g=we(),{isPointCloudSegmentationPattern:b}=z(),Q=ve(),X={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},Y={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"};h(()=>{if(!!c)return c.on("syncPointCloudStatus",v),()=>{c.unbind("syncPointCloudStatus",v)}},[c]);const Z=(o,x)=>{var P,E,y,I,D;const _=(P=p==null?void 0:p.attributeList)==null?void 0:P.map(C=>C.value===o?F($({},C),{color:x}):C),w=F($({},p),{attributeList:_}),L=JSON.stringify(w),S=u==null?void 0:u.map(C=>(C==null?void 0:C.step)===(r==null?void 0:r.step)?F($({},C),{config:L}):C);(E=i==null?void 0:i.topViewInstance)==null||E.updateAttributeList(_),(y=i==null?void 0:i.sideViewInstance)==null||y.updateAttributeList(_),(I=i==null?void 0:i.backViewInstance)==null||I.updateAttributeList(_),(D=i==null?void 0:i.mainViewInstance)==null||D.setConfig(w),Q(De({stepList:S}))},ee=o=>{g.updateViewsByDefaultSize&&g.updateViewsByDefaultSize(o)},te=o=>{G({globalPattern:i.globalPattern,segmentStatus:s.segmentStatus})||l.setDefaultAttribute(o)},R=(o,x)=>{G({globalPattern:i.globalPattern,segmentStatus:s.segmentStatus})||l.setSubAttribute(o,x)},oe=n.map(o=>({label:o.key,value:o.value,color:o==null?void 0:o.color,limit:o==null?void 0:o.limit,isDefault:o==null?void 0:o.isDefault})),ne=a||s.cacheSegData&&s.segmentStatus===N.Edit,le=b;return t.createElement("div",null,t.createElement("div",{style:X},f("Attribute")),t.createElement(W,{list:oe,forbidDefault:!0,selectedAttribute:m!=null?m:"",attributeChanged:o=>te(o),updateColorConfig:Z,enableColorPicker:d,updateSize:ee,forbidShowLimitPopover:le}),t.createElement(A,{style:{margin:0}}),ne&&t.createElement(t.Fragment,null,e.map(o=>{var x,P,E,y,I,D,_,w,L;return(o==null?void 0:o.subSelected)&&t.createElement("div",{style:{marginTop:12},key:o.value},t.createElement("div",{style:Y},f("SubAttribute"),"-",o.key),((x=o.subSelected)==null?void 0:x.length)<5?t.createElement(W,{list:o.subSelected.map(S=>({label:S.key,value:S.value})),selectedAttribute:((E=(P=i.selectedPointCloudBox)==null?void 0:P.subAttribute)==null?void 0:E[o.value])||((I=(y=s.cacheSegData)==null?void 0:y.subAttribute)==null?void 0:I[o.value]),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:S=>R(o.value,S),style:{marginBottom:12}}):t.createElement(U,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:((_=(D=i.selectedPointCloudBox)==null?void 0:D.subAttribute)==null?void 0:_[o.value])||((L=(w=s.cacheSegData)==null?void 0:w.subAttribute)==null?void 0:L[o.value]),placeholder:f("PleaseSelect"),onChange:S=>R(o.value,S),allowClear:!0},o.subSelected.map(S=>t.createElement(U.Option,{key:S.value,value:S.value},S.key))),t.createElement(A,{style:{margin:0}}))})))},Ne=[{toolName:"LassoSelector",commonSvg:_e,selectedSvg:xe},{toolName:"RectSelector",commonSvg:ye,selectedSvg:Ie},{toolName:"CircleSelector",commonSvg:Pe,selectedSvg:Ee}],K=({toolInstance:n})=>{const{ptSegmentInstance:e}=T(B),[l,p]=k("LassoSelector"),{t:u}=V();return h(()=>{if(!e)return;const r=()=>{p("LassoSelector")},d=()=>{p("RectSelector")},s=()=>{p("CircleSelector")};return e.on("LassoSelector",r),e.on("RectSelector",d),e.on("CircleSelector",s),()=>{e.unbind("LassoSelector",r),e.unbind("RectSelector",d),e.unbind("CircleSelector",s)}},[e]),t.createElement("div",{className:`${O}__level`},Ne.map(r=>{const d=l===r.toolName;return t.createElement("span",{className:`${O}__toolOption`,key:r.toolName,onClick:()=>e==null?void 0:e.emit(r.toolName)},t.createElement("img",{className:`${O}__singleTool`,src:d?r==null?void 0:r.selectedSvg:r==null?void 0:r.commonSvg}),t.createElement("span",{className:pe({[`${O}__toolOption__selected`]:d})},u(r.toolName)))}))},Oe=({stepInfo:n,toolInstance:e,imgList:l,imgIndex:p,stepList:u,enableColorPicker:r})=>{var d,s;const{updatePointCloudPattern:v,pointCloudPattern:a,isPointCloudSegmentationPattern:i}=z(),c=me(n.config),f=(d=c==null?void 0:c.attributeList)!=null?d:[],m=(c==null?void 0:c.secondaryAttributeConfigurable)===!0?(s=c==null?void 0:c.inputList)!=null?s:[]:[];return i?t.createElement(t.Fragment,null,t.createElement(K,{toolInstance:e}),t.createElement(H,{toolInstance:e,attributeList:f,subAttributeList:m,config:c,stepList:u,stepInfo:n,enableColorPicker:r})):t.createElement(t.Fragment,null,t.createElement(ae,{toolName:ie.EPointCloudName.PointCloud,selectedToolName:a,onChange:g=>v==null?void 0:v(g)}),t.createElement(H,{toolInstance:e,attributeList:f,subAttributeList:m,config:c,stepList:u,stepInfo:n,enableColorPicker:r}),(c==null?void 0:c.trackConfigurable)===!0&&t.createElement(t.Fragment,null,t.createElement(Ve,null),t.createElement(A,{style:{margin:0}}),t.createElement(je,{imgList:l,imgIndex:p})))},Ae=n=>{var e,l,p,u;const r=ue.getCurrentStepInfo((e=n.annotation)==null?void 0:e.step,(l=n.annotation)==null?void 0:l.stepList),d=(p=n.annotation)==null?void 0:p.toolInstance,s=(u=n.annotation)==null?void 0:u.stepList;return{stepInfo:r,toolInstance:d,imgList:n.annotation.imgList,imgIndex:n.annotation.imgIndex,stepList:s}};var $e=de(Ae,null,null,{context:ge})(Oe);export{K as PointCloudSegToolIcon,$e as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.17.0-alpha.4",
3
+ "version": "1.17.0-alpha.5",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",
@@ -43,8 +43,8 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@ant-design/icons": "^4.6.2",
46
- "@labelbee/lb-annotation": "1.20.0-alpha.3",
47
- "@labelbee/lb-utils": "1.13.0-alpha.3",
46
+ "@labelbee/lb-annotation": "1.20.0-alpha.4",
47
+ "@labelbee/lb-utils": "1.13.0-alpha.4",
48
48
  "@labelbee/wavesurfer": "1.0.0",
49
49
  "@types/react-dom": "^18.2.7",
50
50
  "ahooks": "^3.4.0",