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

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";Object.defineProperty(exports,"__esModule",{value:!0});var Style=require("../../data/Style.js"),index$1=require("../colorTag/index.js"),es=require("antd/es"),React=require("react"),antd=require("antd"),index=require("../colorPalette/index.js"),icons=require("@ant-design/icons"),reactI18next=require("react-i18next"),index$2=require("./components/limitPopover/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const ATTRIBUTE_COLORS=[Style.NULL_COLOR].concat(Style.COLORS_ARRAY),AttributeList=React__default.default.forwardRef((e,v)=>{const m=React__default.default.useRef(),{t:C}=reactI18next.useTranslation(),b=e.list||[],[g,o]=React.useState(!1),[R,E]=React.useState(void 0);let i=[...ATTRIBUTE_COLORS];e.forbidDefault===!0&&(i=i.slice(1));let r="sensebee-radio-group";e.noHeightLimit&&(r="sensebee-radio-group-no-limit-height");const L=(t,l)=>{e.updateColorConfig&&e.updateColorConfig(t,l)};return React__default.default.createElement("div",{className:r,style:e.style},React__default.default.createElement(es.Radio.Group,{name:"radiogroup",defaultValue:e==null?void 0:e.selectedAttribute,value:e==null?void 0:e.selectedAttribute,onChange:t=>e.attributeChanged(t.target.value),ref:v},b.map((t,l)=>{var d,c,s;let a=(d=e==null?void 0:e.num)!=null?d:l;const O=(t==null?void 0:t.value)===(e==null?void 0:e.selectedAttribute);e.forbidDefault===!0&&typeof a=="number"&&a++,typeof a=="number"&&a<=9&&a>=0||(a="-");let u=l>8&&!e.forbidDefault?Style.COLORS_ARRAY[(l-1)%Style.COLORS_ARRAY.length]:i[l%i.length];(t==null?void 0:t.color)&&(u=t.color);const{defaultSize:_,logicalCondition:f,sizeRange:h}=((c=t==null?void 0:t.limit)==null?void 0:c.sizeLimit)||{},y=((s=t==null?void 0:t.limit)==null?void 0:s.positionLimit)||_||h||(f==null?void 0:f.length)>0,A=O&&y;return React__default.default.createElement(es.Radio,{value:t.value,ref:m,key:t.label+l},React__default.default.createElement("span",{className:"sensebee-radio-label",title:t.label},!(e==null?void 0:e.forbidColor)&&React__default.default.createElement(antd.Popover,{content:React__default.default.createElement(index,{defaultColor:u,setColor:n=>L(t.value,n)}),title:React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,C("Palette")),React__default.default.createElement(icons.CloseOutlined,{onClick:()=>o(!1)})),visible:g&&R===l,onVisibleChange:n=>{!n||o(n)}},React__default.default.createElement(index$1.ColorTag,{color:u,style:{cursor:"pointer",marginRight:"8px"},onClick:()=>{(e==null?void 0:e.enableColorPicker)&&(E(l),o(!0))}})),t.label),A&&React__default.default.createElement(index$2,{limit:t.limit,updateSize:e==null?void 0:e.updateSize}),React__default.default.createElement("span",{className:"sensebee-radio-num"},a))})))});exports.ATTRIBUTE_COLORS=ATTRIBUTE_COLORS,exports.default=AttributeList;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var Style=require("../../data/Style.js"),index$1=require("../colorTag/index.js"),es=require("antd/es"),React=require("react"),antd=require("antd"),index=require("../colorPalette/index.js"),icons=require("@ant-design/icons"),reactI18next=require("react-i18next"),index$2=require("./components/limitPopover/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const ATTRIBUTE_COLORS=[Style.NULL_COLOR].concat(Style.COLORS_ARRAY),AttributeList=React__default.default.forwardRef((e,v)=>{const m=React__default.default.useRef(),{t:b}=reactI18next.useTranslation(),C=e.list||[],[g,o]=React.useState(!1),[R,E]=React.useState(void 0);let i=[...ATTRIBUTE_COLORS];e.forbidDefault===!0&&(i=i.slice(1));let r="sensebee-radio-group";e.noHeightLimit&&(r="sensebee-radio-group-no-limit-height");const L=(t,l)=>{e.updateColorConfig&&e.updateColorConfig(t,l)};return React__default.default.createElement("div",{className:r,style:e.style},React__default.default.createElement(es.Radio.Group,{name:"radiogroup",defaultValue:e==null?void 0:e.selectedAttribute,value:e==null?void 0:e.selectedAttribute,onChange:t=>e.attributeChanged(t.target.value),ref:v},C.map((t,l)=>{var d,c,s;let a=(d=e==null?void 0:e.num)!=null?d:l;const h=(t==null?void 0:t.value)===(e==null?void 0:e.selectedAttribute);e.forbidDefault===!0&&typeof a=="number"&&a++,typeof a=="number"&&a<=9&&a>=0||(a="-");let u=l>8&&!e.forbidDefault?Style.COLORS_ARRAY[(l-1)%Style.COLORS_ARRAY.length]:i[l%i.length];(t==null?void 0:t.color)&&(u=t.color);const{defaultSize:O,logicalCondition:f,sizeRange:_}=((c=t==null?void 0:t.limit)==null?void 0:c.sizeLimit)||{},y=((s=t==null?void 0:t.limit)==null?void 0:s.positionLimit)||O||_||(f==null?void 0:f.length)>0,S=h&&y&&e.forbidShowLimitPopover!==!0;return React__default.default.createElement(es.Radio,{value:t.value,ref:m,key:t.label+l},React__default.default.createElement("span",{className:"sensebee-radio-label",title:t.label},!(e==null?void 0:e.forbidColor)&&React__default.default.createElement(antd.Popover,{content:React__default.default.createElement(index,{defaultColor:u,setColor:n=>L(t.value,n)}),title:React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,b("Palette")),React__default.default.createElement(icons.CloseOutlined,{onClick:()=>o(!1)})),visible:g&&R===l,onVisibleChange:n=>{!n||o(n)}},React__default.default.createElement(index$1.ColorTag,{color:u,style:{cursor:"pointer",marginRight:"8px"},onClick:()=>{(e==null?void 0:e.enableColorPicker)&&(E(l),o(!0))}})),t.label),S&&React__default.default.createElement(index$2,{limit:t.limit,updateSize:e==null?void 0:e.updateSize}),React__default.default.createElement("span",{className:"sensebee-radio-num"},a))})))});exports.ATTRIBUTE_COLORS=ATTRIBUTE_COLORS,exports.default=AttributeList;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),dom=require("../../utils/dom.js"),finish=require("../../assets/annotation/pointCloudTool/finish.svg.js"),cancel=require("../../assets/annotation/pointCloudTool/cancel.svg.js"),PointCloudContext=require("./PointCloudContext.js"),lbUtils=require("@labelbee/lb-utils"),reactI18next=require("react-i18next");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React);const SegmentInfo=({infoList:a})=>{const{t:u}=reactI18next.useTranslation();return a?React__default.default.createElement("div",{className:dom.getClassName("point-cloud-status","info")},a.map(n=>React__default.default.createElement("div",{key:n.key},React__default.default.createElement("span",null,u(n.key),"\uFF1A "),React__default.default.createElement("span",null,n.value)))):null},PointCloudSegmentStatus=a=>{var u,n,d,r,m,f;const{config:g}=a,{t:s}=reactI18next.useTranslation(),{ptSegmentInstance:t,setDefaultAttribute:v}=React.useContext(PointCloudContext.PointCloudContext),[o,C]=React.useState({segmentStatus:lbUtils.EPointCloudSegmentStatus.Ready});React.useEffect(()=>{if(t){const e=l=>{C(l),l.cacheSegData&&v(l.cacheSegData.attribute)};return t==null||t.on("syncPointCloudStatus",e),()=>{t==null||t.unbind("syncPointCloudStatus",e)}}},[t]);const i=o.segmentStatus;if(i===lbUtils.EPointCloudSegmentStatus.Ready)return null;const S=i===lbUtils.EPointCloudSegmentStatus.Check,E=i===lbUtils.EPointCloudSegmentStatus.Edit;let c=null;const p=((d=(n=(u=o.cacheSegData)==null?void 0:u.points)==null?void 0:n.length)!=null?d:0)/3;let b=[{key:"SelectedPoints",value:p},{key:"Attribute",value:(m=(r=g.attributeList.find(e=>{var l;return e.value===((l=o.cacheSegData)==null?void 0:l.attribute)}))==null?void 0:r.key)!=null?m:""},{key:"SubAttribute",value:lbUtils.PointCloudUtils.getSubAttributeName(((f=o.cacheSegData)==null?void 0:f.subAttribute)||{},g).map(e=>React__default.default.createElement("div",{key:e.label},e.label," - ",e.value))}];return S&&(c=React__default.default.createElement("div",{className:dom.getClassName("point-cloud-status","operation")},React__default.default.createElement("span",{className:dom.getClassName("point-cloud-status","button"),onClick:()=>{t==null||t.emit("updateCheck2Edit")}},s("EnterEditMode"),"(Enter)"))),E&&(c=React__default.default.createElement("div",{className:dom.getClassName("point-cloud-status","operation")},React__default.default.createElement("span",{className:dom.getClassName("point-cloud-status","button"),onClick:()=>{var e;t==null||t.emit("addStash2Store"),((e=t==null?void 0:t.store)==null?void 0:e.segmentFocusMode)===lbUtils.EPointCloudSegmentFocusMode.Focus&&(t==null||t.emit("setSegmentFocusMode",lbUtils.EPointCloudSegmentFocusMode.Unfocus))}},React__default.default.createElement("img",{className:dom.getClassName("point-cloud-status","icon"),src:finish}),s("Finish")),React__default.default.createElement("span",{className:dom.getClassName("point-cloud-status","button"),onClick:()=>{var e;t==null||t.emit("clearStash"),((e=t==null?void 0:t.store)==null?void 0:e.segmentFocusMode)===lbUtils.EPointCloudSegmentFocusMode.Focus&&(t==null||t.emit("setSegmentFocusMode",lbUtils.EPointCloudSegmentFocusMode.Unfocus))}},React__default.default.createElement("img",{className:dom.getClassName("point-cloud-status","icon"),src:cancel}),s("Cancel")))),React__default.default.createElement(React__default.default.Fragment,null,c,React__default.default.createElement(SegmentInfo,{infoList:b}))};module.exports=PointCloudSegmentStatus;
1
+ "use strict";var React=require("react"),dom=require("../../utils/dom.js"),finish=require("../../assets/annotation/pointCloudTool/finish.svg.js"),cancel=require("../../assets/annotation/pointCloudTool/cancel.svg.js"),PointCloudContext=require("./PointCloudContext.js"),lbUtils=require("@labelbee/lb-utils"),reactI18next=require("react-i18next");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React);const SegmentInfo=({infoList:a})=>{const{t:s}=reactI18next.useTranslation();return a?React__default.default.createElement("div",{className:dom.getClassName("point-cloud-status","info")},a.map(n=>React__default.default.createElement("div",{key:n.key},React__default.default.createElement("span",null,s(n.key),"\uFF1A "),React__default.default.createElement("span",null,n.value)))):null},PointCloudSegmentStatus=a=>{var s,n,m,g,S,v,f;const{config:C}=a,{t:i}=reactI18next.useTranslation(),{ptSegmentInstance:t,setDefaultAttribute:p}=React.useContext(PointCloudContext.PointCloudContext),[l,c]=React.useState({segmentStatus:lbUtils.EPointCloudSegmentStatus.Ready});React.useEffect(()=>{if(t){const e=u=>{c(u),u.cacheSegData&&p(u.cacheSegData.attribute)},o=({segmentData:u,currentSegmentStatus:y})=>{if(y===lbUtils.EPointCloudSegmentStatus.Ready){if(!u){c({segmentStatus:lbUtils.EPointCloudSegmentStatus.Ready});return}c({segmentStatus:lbUtils.EPointCloudSegmentStatus.Hover,cacheSegData:u})}};return t==null||t.on("syncPointCloudStatus",e),t==null||t.on("hoverSegmentInstance",o),()=>{t==null||t.unbind("syncPointCloudStatus",e),t==null||t.unbind("hoverSegmentInstance",o)}}},[t]);const d=l.segmentStatus;if(d===lbUtils.EPointCloudSegmentStatus.Ready)return null;const b=d===lbUtils.EPointCloudSegmentStatus.Check,h=d===lbUtils.EPointCloudSegmentStatus.Edit;let r=null;const P=((m=(n=(s=l.cacheSegData)==null?void 0:s.points)==null?void 0:n.length)!=null?m:0)/3,E=[{key:"SelectedPoints",value:P},{key:"Attribute",value:(S=(g=C.attributeList.find(e=>{var o;return e.value===((o=l.cacheSegData)==null?void 0:o.attribute)}))==null?void 0:g.key)!=null?S:""}];return Object.keys(((v=l.cacheSegData)==null?void 0:v.subAttribute)||{}).length>0&&E.push({key:"SubAttribute",value:lbUtils.PointCloudUtils.getSubAttributeName(((f=l.cacheSegData)==null?void 0:f.subAttribute)||{},C).map(e=>React__default.default.createElement("div",{key:e.label},e.label," - ",e.value))}),b&&(r=React__default.default.createElement("div",{className:dom.getClassName("point-cloud-status","operation")},React__default.default.createElement("span",{className:dom.getClassName("point-cloud-status","button"),onClick:()=>{t==null||t.emit("updateCheck2Edit")}},i("EnterEditMode"),"(Enter)"))),h&&(r=React__default.default.createElement("div",{className:dom.getClassName("point-cloud-status","operation")},React__default.default.createElement("span",{className:dom.getClassName("point-cloud-status","button"),onClick:()=>{var e;t==null||t.emit("addStash2Store"),((e=t==null?void 0:t.store)==null?void 0:e.segmentFocusMode)===lbUtils.EPointCloudSegmentFocusMode.Focus&&(t==null||t.emit("setSegmentFocusMode",lbUtils.EPointCloudSegmentFocusMode.Unfocus))}},React__default.default.createElement("img",{className:dom.getClassName("point-cloud-status","icon"),src:finish}),i("Finish")),React__default.default.createElement("span",{className:dom.getClassName("point-cloud-status","button"),onClick:()=>{var e;t==null||t.emit("clearStash"),((e=t==null?void 0:t.store)==null?void 0:e.segmentFocusMode)===lbUtils.EPointCloudSegmentFocusMode.Focus&&(t==null||t.emit("setSegmentFocusMode",lbUtils.EPointCloudSegmentFocusMode.Unfocus))}},React__default.default.createElement("img",{className:dom.getClassName("point-cloud-status","icon"),src:cancel}),i("Cancel")))),React__default.default.createElement(React__default.default.Fragment,null,r,React__default.default.createElement(SegmentInfo,{infoList:E}))};module.exports=PointCloudSegmentStatus;
@@ -19,6 +19,7 @@ interface IProps {
19
19
  updateColorConfig?: (value: string, color: string) => void;
20
20
  updateSize?: (size: IDefaultSize) => void;
21
21
  attributeLockChange?: (list: any) => void;
22
+ forbidShowLimitPopover?: boolean;
22
23
  }
23
24
  declare const AttributeList: React.ForwardRefExoticComponent<IProps & React.RefAttributes<unknown>>;
24
25
  export default AttributeList;
@@ -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),[p,i]=React.useState([]),{t:l}=reactI18next.useTranslation();React.useEffect(()=>{const c=t;let v=new Map;i(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:c,extraBoxList:u,ignoreIndexList:[e]}).filter(a=>!a.trackID||v.get(a.trackID)?!1:(v.set(a.trackID,!0),!0)).sort((a,r)=>{var s,g;const d=(s=a==null?void 0:a.trackID)!=null?s:0,m=(g=r==null?void 0:r.trackID)!=null?g:0;return d-m}).map(a=>{var r;return(r=a==null?void 0:a.trackID)!=null?r:0}))},[o.pointCloudBoxList,t]);const{pointCloudBoxList:u}=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,p.map(c=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:c,style:{color:"#666",marginBottom:8}},c))))},BoxTrackIDInput=()=>{const[t,e]=React.useState(!1),o=React.useContext(PointCloudContext.PointCloudContext),{pointCloudBoxList:p}=o,{selectedBox:i,updateSelectedBox:l}=useSingleBox.useSingleBox(),[u,c]=React.useState(""),{t:v}=reactI18next.useTranslation(),a=i==null?void 0:i.info.trackID,r=d=>!!p.find(C=>C.trackID===d&&C.id!==(i==null?void 0:i.info.id)),s=(d=!1)=>{const m=parseInt(u,10);if(d&&e(!1),isNaN(m)){antd.message.error(v("PositiveIntegerCheck"));return}if(u.indexOf(".")>-1){antd.message.error(v("NotAllowDecimalPointsInTrackID"));return}if(r(m)){antd.message.error(v("DuplicateTrackIDsExist"));return}if(!(m>0)){antd.message.error(v("PositiveIntegerCheck"));return}g(m)};React.useEffect(()=>{e(!1)},[a]);const g=d=>{var m;const C=l({trackID:d});(m=o==null?void 0:o.topViewInstance)==null||m.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=>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=>{c(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)}})))},AttributeUpdater=({attributeList:t,subAttributeList:e,toolInstance:o,config:p,stepList:i,stepInfo:l,enableColorPicker:u})=>{const[c,v]=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(),m=usePointCloudViews.usePointCloudViews(),C=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",v),()=>{s.unbind("syncPointCloudStatus",v)}},[s]);const w=(n,_)=>{var b,y,E,I,P;const x=(b=p==null?void 0:p.attributeList)==null?void 0:b.map(S=>S.value===n?__spreadProps(__spreadValues({},S),{color:_}):S),f=__spreadProps(__spreadValues({},p),{attributeList:x}),h=JSON.stringify(f),q=i==null?void 0:i.map(S=>(S==null?void 0:S.step)===(l==null?void 0:l.step)?__spreadProps(__spreadValues({},S),{config:h}):S);(y=r==null?void 0:r.topViewInstance)==null||y.updateAttributeList(x),(E=r==null?void 0:r.sideViewInstance)==null||E.updateAttributeList(x),(I=r==null?void 0:r.backViewInstance)==null||I.updateAttributeList(x),(P=r==null?void 0:r.mainViewInstance)==null||P.setConfig(f),C(actionCreators.SetTaskStepList({stepList:q}))},L=n=>{m.updateViewsByDefaultSize&&m.updateViewsByDefaultSize(n)},j=n=>{o.setDefaultAttribute(n)},D=(n,_)=>{o.setSubAttribute(n,_)},B=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}));return React__default.default.createElement("div",null,React__default.default.createElement("div",{style:T},g("Attribute")),React__default.default.createElement(index$2.default,{list:B,forbidDefault:!0,selectedAttribute:d!=null?d:"",attributeChanged:n=>j(n),updateColorConfig:w,enableColorPicker:u,updateSize:L}),React__default.default.createElement(antd.Divider,{style:{margin:0}}),(a||c.cacheSegData)&&React__default.default.createElement(React__default.default.Fragment,null,e.map(n=>{var _,b,y,E,I,P,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),((_=n.subSelected)==null?void 0:_.length)<5?React__default.default.createElement(index$2.default,{list:n.subSelected.map(f=>({label:f.key,value:f.value})),selectedAttribute:((y=(b=r.selectedPointCloudBox)==null?void 0:b.subAttribute)==null?void 0:y[n.value])||((I=(E=c.cacheSegData)==null?void 0:E.subAttribute)==null?void 0:I[n.value]),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:f=>D(n.value,f),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(x=(P=r.selectedPointCloudBox)==null?void 0:P.subAttribute)==null?void 0:x[n.value],placeholder:g("PleaseSelect"),onChange:f=>D(n.value,f),allowClear:!0},n.subSelected.map(f=>React__default.default.createElement(antd.Select.Option,{key:f.value,value:f.value},f.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))})))},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,p]=React.useState("LassoSelector"),{t:i}=reactI18next.useTranslation();return React.useEffect(()=>{if(!e)return;const l=()=>{p("LassoSelector")},u=()=>{p("RectSelector")},c=()=>{p("CircleSelector")};return e.on("LassoSelector",l),e.on("RectSelector",u),e.on("CircleSelector",c),()=>{e.unbind("LassoSelector",l),e.unbind("RectSelector",u),e.unbind("CircleSelector",c)}},[e]),React__default.default.createElement("div",{className:`${index$3.sidebarCls}__level`},renderSegmentTools.map(l=>{const u=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:u?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`]:u})},i(l.toolName)))}))},PointCloudToolSidebar=({stepInfo:t,toolInstance:e,imgList:o,imgIndex:p,stepList:i,enableColorPicker:l})=>{var u,c;const{updatePointCloudPattern:v,pointCloudPattern:a,isPointCloudSegmentationPattern:r}=useStatus.useStatus(),s=index.jsonParser(t.config),g=(u=s==null?void 0:s.attributeList)!=null?u:[],d=(s==null?void 0:s.secondaryAttributeConfigurable)===!0?(c=s==null?void 0:s.inputList)!=null?c:[]:[];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:i,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:m=>v==null?void 0:v(m)}),React__default.default.createElement(AttributeUpdater,{toolInstance:e,attributeList:g,subAttributeList:d,config:s,stepList:i,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:p})))},mapStateToProps=t=>{var e,o,p,i;const l=StepUtils.getCurrentStepInfo((e=t.annotation)==null?void 0:e.step,(o=t.annotation)==null?void 0:o.stepList),u=(p=t.annotation)==null?void 0:p.toolInstance,c=(i=t.annotation)==null?void 0:i.stepList;return{stepInfo:l,toolInstance:u,imgList:t.annotation.imgList,imgIndex:t.annotation.imgIndex,stepList:c}};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 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 +1 @@
1
- import{COLORS_ARRAY as m,NULL_COLOR as I}from"../../data/Style.js";import{ColorTag as N}from"../colorTag/index.js";import{Radio as b}from"antd/es";import l,{useState as g}from"react";import{Popover as k}from"antd";import V from"../colorPalette/index.js";import{CloseOutlined as w}from"@ant-design/icons";import{useTranslation as x}from"react-i18next";import D from"./components/limitPopover/index.js";const C=[I].concat(m),U=l.forwardRef((e,E)=>{const h=l.useRef(),{t:R}=x(),L=e.list||[],[y,r]=g(!1),[O,P]=g(void 0);let n=[...C];e.forbidDefault===!0&&(n=n.slice(1));let c="sensebee-radio-group";e.noHeightLimit&&(c="sensebee-radio-group-no-limit-height");const T=(t,o)=>{e.updateColorConfig&&e.updateColorConfig(t,o)};return l.createElement("div",{className:c,style:e.style},l.createElement(b.Group,{name:"radiogroup",defaultValue:e==null?void 0:e.selectedAttribute,value:e==null?void 0:e.selectedAttribute,onChange:t=>e.attributeChanged(t.target.value),ref:E},L.map((t,o)=>{var s,d,f;let i=(s=e==null?void 0:e.num)!=null?s:o;const A=(t==null?void 0:t.value)===(e==null?void 0:e.selectedAttribute);e.forbidDefault===!0&&typeof i=="number"&&i++,typeof i=="number"&&i<=9&&i>=0||(i="-");let u=o>8&&!e.forbidDefault?m[(o-1)%m.length]:n[o%n.length];(t==null?void 0:t.color)&&(u=t.color);const{defaultSize:S,logicalCondition:v,sizeRange:_}=((d=t==null?void 0:t.limit)==null?void 0:d.sizeLimit)||{},j=((f=t==null?void 0:t.limit)==null?void 0:f.positionLimit)||S||_||(v==null?void 0:v.length)>0,z=A&&j;return l.createElement(b,{value:t.value,ref:h,key:t.label+o},l.createElement("span",{className:"sensebee-radio-label",title:t.label},!(e==null?void 0:e.forbidColor)&&l.createElement(k,{content:l.createElement(V,{defaultColor:u,setColor:a=>T(t.value,a)}),title:l.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},l.createElement("span",null,R("Palette")),l.createElement(w,{onClick:()=>r(!1)})),visible:y&&O===o,onVisibleChange:a=>{!a||r(a)}},l.createElement(N,{color:u,style:{cursor:"pointer",marginRight:"8px"},onClick:()=>{(e==null?void 0:e.enableColorPicker)&&(P(o),r(!0))}})),t.label),z&&l.createElement(D,{limit:t.limit,updateSize:e==null?void 0:e.updateSize}),l.createElement("span",{className:"sensebee-radio-num"},i))})))});export{C as ATTRIBUTE_COLORS,U as default};
1
+ import{COLORS_ARRAY as m,NULL_COLOR as I}from"../../data/Style.js";import{ColorTag as N}from"../colorTag/index.js";import{Radio as b}from"antd/es";import l,{useState as g}from"react";import{Popover as k}from"antd";import w from"../colorPalette/index.js";import{CloseOutlined as V}from"@ant-design/icons";import{useTranslation as x}from"react-i18next";import D from"./components/limitPopover/index.js";const C=[I].concat(m),U=l.forwardRef((e,h)=>{const E=l.useRef(),{t:R}=x(),L=e.list||[],[y,r]=g(!1),[P,O]=g(void 0);let n=[...C];e.forbidDefault===!0&&(n=n.slice(1));let c="sensebee-radio-group";e.noHeightLimit&&(c="sensebee-radio-group-no-limit-height");const S=(t,o)=>{e.updateColorConfig&&e.updateColorConfig(t,o)};return l.createElement("div",{className:c,style:e.style},l.createElement(b.Group,{name:"radiogroup",defaultValue:e==null?void 0:e.selectedAttribute,value:e==null?void 0:e.selectedAttribute,onChange:t=>e.attributeChanged(t.target.value),ref:h},L.map((t,o)=>{var s,d,f;let i=(s=e==null?void 0:e.num)!=null?s:o;const T=(t==null?void 0:t.value)===(e==null?void 0:e.selectedAttribute);e.forbidDefault===!0&&typeof i=="number"&&i++,typeof i=="number"&&i<=9&&i>=0||(i="-");let u=o>8&&!e.forbidDefault?m[(o-1)%m.length]:n[o%n.length];(t==null?void 0:t.color)&&(u=t.color);const{defaultSize:A,logicalCondition:v,sizeRange:_}=((d=t==null?void 0:t.limit)==null?void 0:d.sizeLimit)||{},j=((f=t==null?void 0:t.limit)==null?void 0:f.positionLimit)||A||_||(v==null?void 0:v.length)>0,z=T&&j&&e.forbidShowLimitPopover!==!0;return l.createElement(b,{value:t.value,ref:E,key:t.label+o},l.createElement("span",{className:"sensebee-radio-label",title:t.label},!(e==null?void 0:e.forbidColor)&&l.createElement(k,{content:l.createElement(w,{defaultColor:u,setColor:a=>S(t.value,a)}),title:l.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},l.createElement("span",null,R("Palette")),l.createElement(V,{onClick:()=>r(!1)})),visible:y&&P===o,onVisibleChange:a=>{!a||r(a)}},l.createElement(N,{color:u,style:{cursor:"pointer",marginRight:"8px"},onClick:()=>{(e==null?void 0:e.enableColorPicker)&&(O(o),r(!0))}})),t.label),z&&l.createElement(D,{limit:t.limit,updateSize:e==null?void 0:e.updateSize}),l.createElement("span",{className:"sensebee-radio-num"},i))})))});export{C as ATTRIBUTE_COLORS,U as default};
@@ -1 +1 @@
1
- import e,{useContext as P,useState as _,useEffect as A}from"react";import{getClassName as o}from"../../utils/dom.js";import M from"../../assets/annotation/pointCloudTool/finish.svg.js";import x from"../../assets/annotation/pointCloudTool/cancel.svg.js";import{PointCloudContext as D}from"./PointCloudContext.js";import{EPointCloudSegmentStatus as c,PointCloudUtils as j,EPointCloudSegmentFocusMode as r}from"@labelbee/lb-utils";import{useTranslation as b}from"react-i18next";const R=({infoList:s})=>{const{t:u}=b();return s?e.createElement("div",{className:o("point-cloud-status","info")},s.map(a=>e.createElement("div",{key:a.key},e.createElement("span",null,u(a.key),"\uFF1A "),e.createElement("span",null,a.value)))):null},T=s=>{var u,a,v,g,f,S;const{config:E}=s,{t:d}=b(),{ptSegmentInstance:t,setDefaultAttribute:C}=P(D),[i,h]=_({segmentStatus:c.Ready});A(()=>{if(t){const n=l=>{h(l),l.cacheSegData&&C(l.cacheSegData.attribute)};return t==null||t.on("syncPointCloudStatus",n),()=>{t==null||t.unbind("syncPointCloudStatus",n)}}},[t]);const m=i.segmentStatus;if(m===c.Ready)return null;const k=m===c.Check,y=m===c.Edit;let p=null;const F=((v=(a=(u=i.cacheSegData)==null?void 0:u.points)==null?void 0:a.length)!=null?v:0)/3;let N=[{key:"SelectedPoints",value:F},{key:"Attribute",value:(f=(g=E.attributeList.find(n=>{var l;return n.value===((l=i.cacheSegData)==null?void 0:l.attribute)}))==null?void 0:g.key)!=null?f:""},{key:"SubAttribute",value:j.getSubAttributeName(((S=i.cacheSegData)==null?void 0:S.subAttribute)||{},E).map(n=>e.createElement("div",{key:n.label},n.label," - ",n.value))}];return k&&(p=e.createElement("div",{className:o("point-cloud-status","operation")},e.createElement("span",{className:o("point-cloud-status","button"),onClick:()=>{t==null||t.emit("updateCheck2Edit")}},d("EnterEditMode"),"(Enter)"))),y&&(p=e.createElement("div",{className:o("point-cloud-status","operation")},e.createElement("span",{className:o("point-cloud-status","button"),onClick:()=>{var n;t==null||t.emit("addStash2Store"),((n=t==null?void 0:t.store)==null?void 0:n.segmentFocusMode)===r.Focus&&(t==null||t.emit("setSegmentFocusMode",r.Unfocus))}},e.createElement("img",{className:o("point-cloud-status","icon"),src:M}),d("Finish")),e.createElement("span",{className:o("point-cloud-status","button"),onClick:()=>{var n;t==null||t.emit("clearStash"),((n=t==null?void 0:t.store)==null?void 0:n.segmentFocusMode)===r.Focus&&(t==null||t.emit("setSegmentFocusMode",r.Unfocus))}},e.createElement("img",{className:o("point-cloud-status","icon"),src:x}),d("Cancel")))),e.createElement(e.Fragment,null,p,e.createElement(R,{infoList:N}))};export{T as default};
1
+ import e,{useContext as D,useState as M,useEffect as j}from"react";import{getClassName as o}from"../../utils/dom.js";import x from"../../assets/annotation/pointCloudTool/finish.svg.js";import R from"../../assets/annotation/pointCloudTool/cancel.svg.js";import{PointCloudContext as I}from"./PointCloudContext.js";import{EPointCloudSegmentStatus as a,PointCloudUtils as T,EPointCloudSegmentFocusMode as d}from"@labelbee/lb-utils";import{useTranslation as y}from"react-i18next";const U=({infoList:c})=>{const{t:r}=y();return c?e.createElement("div",{className:o("point-cloud-status","info")},c.map(s=>e.createElement("div",{key:s.key},e.createElement("span",null,r(s.key),"\uFF1A "),e.createElement("span",null,s.value)))):null},H=c=>{var r,s,S,f,b,E,C;const{config:h}=c,{t:m}=y(),{ptSegmentInstance:t,setDefaultAttribute:F}=D(I),[u,v]=M({segmentStatus:a.Ready});j(()=>{if(t){const n=l=>{v(l),l.cacheSegData&&F(l.cacheSegData.attribute)},i=({segmentData:l,currentSegmentStatus:A})=>{if(A===a.Ready){if(!l){v({segmentStatus:a.Ready});return}v({segmentStatus:a.Hover,cacheSegData:l})}};return t==null||t.on("syncPointCloudStatus",n),t==null||t.on("hoverSegmentInstance",i),()=>{t==null||t.unbind("syncPointCloudStatus",n),t==null||t.unbind("hoverSegmentInstance",i)}}},[t]);const g=u.segmentStatus;if(g===a.Ready)return null;const N=g===a.Check,_=g===a.Edit;let p=null;const P=((S=(s=(r=u.cacheSegData)==null?void 0:r.points)==null?void 0:s.length)!=null?S:0)/3,k=[{key:"SelectedPoints",value:P},{key:"Attribute",value:(b=(f=h.attributeList.find(n=>{var i;return n.value===((i=u.cacheSegData)==null?void 0:i.attribute)}))==null?void 0:f.key)!=null?b:""}];return Object.keys(((E=u.cacheSegData)==null?void 0:E.subAttribute)||{}).length>0&&k.push({key:"SubAttribute",value:T.getSubAttributeName(((C=u.cacheSegData)==null?void 0:C.subAttribute)||{},h).map(n=>e.createElement("div",{key:n.label},n.label," - ",n.value))}),N&&(p=e.createElement("div",{className:o("point-cloud-status","operation")},e.createElement("span",{className:o("point-cloud-status","button"),onClick:()=>{t==null||t.emit("updateCheck2Edit")}},m("EnterEditMode"),"(Enter)"))),_&&(p=e.createElement("div",{className:o("point-cloud-status","operation")},e.createElement("span",{className:o("point-cloud-status","button"),onClick:()=>{var n;t==null||t.emit("addStash2Store"),((n=t==null?void 0:t.store)==null?void 0:n.segmentFocusMode)===d.Focus&&(t==null||t.emit("setSegmentFocusMode",d.Unfocus))}},e.createElement("img",{className:o("point-cloud-status","icon"),src:x}),m("Finish")),e.createElement("span",{className:o("point-cloud-status","button"),onClick:()=>{var n;t==null||t.emit("clearStash"),((n=t==null?void 0:t.store)==null?void 0:n.segmentFocusMode)===d.Focus&&(t==null||t.emit("setSegmentFocusMode",d.Unfocus))}},e.createElement("img",{className:o("point-cloud-status","icon"),src:R}),m("Cancel")))),e.createElement(e.Fragment,null,p,e.createElement(U,{infoList:k}))};export{H as default};
@@ -1 +1 @@
1
- import e,{useContext as w,useState as k,useEffect as L}from"react";import{EditFilled as Z}from"@ant-design/icons";import{ToolIcons as ee}from"../ToolIcons.js";import{cTool as te}from"@labelbee/lb-annotation";import{PointCloudContext as T}from"../../../../components/pointCloudView/PointCloudContext.js";import{Divider as V,Tag as oe,Input as ne,Select as $,message as h}from"antd";import le from"../../../../utils/StepUtils.js";import{connect as re}from"react-redux";import{jsonParser as ae,classnames as ie}from"../../../../utils/index.js";import{useStatus as se}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as F}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as B}from"react-i18next";import{LabelBeeContext as ce,useDispatch as ue}from"../../../../store/ctx.js";import de from"./components/batchUpdateModal/index.js";import{PointCloudUtils as me,EPointCloudSegmentStatus as pe}from"@labelbee/lb-utils";import R from"../../../../components/attributeList/index.js";import{useAttribute as ve}from"../../../../components/pointCloudView/hooks/useAttribute.js";import fe from"../../../../assets/annotation/pointCloudTool/lassoSelector.svg.js";import ge from"../../../../assets/annotation/pointCloudTool/lassoSelector_a.svg.js";import Se from"../../../../assets/annotation/pointCloudTool/circleSelector.svg.js";import Ce from"../../../../assets/annotation/pointCloudTool/circleSelector_a.svg.js";import _e from"../../../../assets/annotation/rectTool/icon_rect.svg.js";import be from"../../../../assets/annotation/rectTool/icon_rect_a.svg.js";import{sidebarCls as j}from"../index.js";import{SetTaskStepList as xe}from"../../../../store/annotation/actionCreators.js";import{usePointCloudViews as ye}from"../../../../components/pointCloudView/hooks/usePointCloudViews.js";var Ee=Object.defineProperty,Ie=Object.defineProperties,Pe=Object.getOwnPropertyDescriptors,z=Object.getOwnPropertySymbols,De=Object.prototype.hasOwnProperty,ke=Object.prototype.propertyIsEnumerable,U=(n,t,l)=>t in n?Ee(n,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):n[t]=l,N=(n,t)=>{for(var l in t||(t={}))De.call(t,l)&&U(n,l,t[l]);if(z)for(var l of z(t))ke.call(t,l)&&U(n,l,t[l]);return n},O=(n,t)=>Ie(n,Pe(t));const we=({imgList:n,imgIndex:t})=>{const l=w(T),[p,c]=k([]),{t:r}=B();L(()=>{const d=n;let f=new Map;c(me.getAllPointCloudResult({imgList:d,extraBoxList:u,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,v=(S=i==null?void 0:i.trackID)!=null?S:0;return m-v}).map(a=>{var i;return(i=a==null?void 0:a.trackID)!=null?i:0}))},[l.pointCloudBoxList,n]);const{pointCloudBoxList:u}=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(d=>e.createElement(oe,{color:"#F3F4FF",key:d,style:{color:"#666",marginBottom:8}},d))))},Le=()=>{const[n,t]=k(!1),l=w(T),{pointCloudBoxList:p}=l,{selectedBox:c,updateSelectedBox:r}=F(),[u,d]=k(""),{t:f}=B(),a=c==null?void 0:c.info.trackID,i=m=>!!p.find(_=>_.trackID===m&&_.id!==(c==null?void 0:c.info.id)),s=(m=!1)=>{const v=parseInt(u,10);if(m&&t(!1),isNaN(v)){h.error(f("PositiveIntegerCheck"));return}if(u.indexOf(".")>-1){h.error(f("NotAllowDecimalPointsInTrackID"));return}if(i(v)){h.error(f("DuplicateTrackIDsExist"));return}if(!(v>0)){h.error(f("PositiveIntegerCheck"));return}S(v)};L(()=>{t(!1)},[a]);const S=m=>{var v;const _=r({trackID:m});(v=l==null?void 0:l.topViewInstance)==null||v.updatePolygonList(_!=null?_:[])};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(de,{id:a,updateCurrentPolygonList:m=>S(m)})),e.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},n&&a?e.createElement(ne,{defaultValue:a,onChange:m=>{d(m.target.value)},disabled:!a,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):e.createElement("span",null,a),e.createElement(Z,{style:{color:"#999",marginLeft:16,cursor:typeof a!="undefined"?"pointer":"not-allowed"},onClick:()=>{a&&t(!n)}})))},M=({attributeList:n,subAttributeList:t,toolInstance:l,config:p,stepList:c,stepInfo:r,enableColorPicker:u})=>{const[d,f]=k({segmentStatus:pe.Ready}),{selectedBox:a}=F(),i=w(T),{ptSegmentInstance:s}=i,{t:S}=B(),{defaultAttribute:m}=ve(),v=ye(),_=ue(),J={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 G=(o,x)=>{var y,E,I,P,D;const b=(y=p==null?void 0:p.attributeList)==null?void 0:y.map(C=>C.value===o?O(N({},C),{color:x}):C),g=O(N({},p),{attributeList:b}),X=JSON.stringify(g),Y=c==null?void 0:c.map(C=>(C==null?void 0:C.step)===(r==null?void 0:r.step)?O(N({},C),{config:X}):C);(E=i==null?void 0:i.topViewInstance)==null||E.updateAttributeList(b),(I=i==null?void 0:i.sideViewInstance)==null||I.updateAttributeList(b),(P=i==null?void 0:i.backViewInstance)==null||P.updateAttributeList(b),(D=i==null?void 0:i.mainViewInstance)==null||D.setConfig(g),_(xe({stepList:Y}))},H=o=>{v.updateViewsByDefaultSize&&v.updateViewsByDefaultSize(o)},K=o=>{l.setDefaultAttribute(o)},A=(o,x)=>{l.setSubAttribute(o,x)},Q=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}));return e.createElement("div",null,e.createElement("div",{style:J},S("Attribute")),e.createElement(R,{list:Q,forbidDefault:!0,selectedAttribute:m!=null?m:"",attributeChanged:o=>K(o),updateColorConfig:G,enableColorPicker:u,updateSize:H}),e.createElement(V,{style:{margin:0}}),(a||d.cacheSegData)&&e.createElement(e.Fragment,null,t.map(o=>{var x,y,E,I,P,D,b;return(o==null?void 0:o.subSelected)&&e.createElement("div",{style:{marginTop:12},key:o.value},e.createElement("div",{style:q},S("SubAttribute"),"-",o.key),((x=o.subSelected)==null?void 0:x.length)<5?e.createElement(R,{list:o.subSelected.map(g=>({label:g.key,value:g.value})),selectedAttribute:((E=(y=i.selectedPointCloudBox)==null?void 0:y.subAttribute)==null?void 0:E[o.value])||((P=(I=d.cacheSegData)==null?void 0:I.subAttribute)==null?void 0:P[o.value]),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:g=>A(o.value,g),style:{marginBottom:12}}):e.createElement($,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(b=(D=i.selectedPointCloudBox)==null?void 0:D.subAttribute)==null?void 0:b[o.value],placeholder:S("PleaseSelect"),onChange:g=>A(o.value,g),allowClear:!0},o.subSelected.map(g=>e.createElement($.Option,{key:g.value,value:g.value},g.key))),e.createElement(V,{style:{margin:0}}))})))},Te=[{toolName:"LassoSelector",commonSvg:fe,selectedSvg:ge},{toolName:"RectSelector",commonSvg:_e,selectedSvg:be},{toolName:"CircleSelector",commonSvg:Se,selectedSvg:Ce}],W=({toolInstance:n})=>{const{ptSegmentInstance:t}=w(T),[l,p]=k("LassoSelector"),{t:c}=B();return L(()=>{if(!t)return;const r=()=>{p("LassoSelector")},u=()=>{p("RectSelector")},d=()=>{p("CircleSelector")};return t.on("LassoSelector",r),t.on("RectSelector",u),t.on("CircleSelector",d),()=>{t.unbind("LassoSelector",r),t.unbind("RectSelector",u),t.unbind("CircleSelector",d)}},[t]),e.createElement("div",{className:`${j}__level`},Te.map(r=>{const u=l===r.toolName;return e.createElement("span",{className:`${j}__toolOption`,key:r.toolName,onClick:()=>t==null?void 0:t.emit(r.toolName)},e.createElement("img",{className:`${j}__singleTool`,src:u?r==null?void 0:r.selectedSvg:r==null?void 0:r.commonSvg}),e.createElement("span",{className:ie({[`${j}__toolOption__selected`]:u})},c(r.toolName)))}))},he=({stepInfo:n,toolInstance:t,imgList:l,imgIndex:p,stepList:c,enableColorPicker:r})=>{var u,d;const{updatePointCloudPattern:f,pointCloudPattern:a,isPointCloudSegmentationPattern:i}=se(),s=ae(n.config),S=(u=s==null?void 0:s.attributeList)!=null?u:[],m=(s==null?void 0:s.secondaryAttributeConfigurable)===!0?(d=s==null?void 0:s.inputList)!=null?d:[]:[];return i?e.createElement(e.Fragment,null,e.createElement(W,{toolInstance:t}),e.createElement(M,{toolInstance:t,attributeList:S,subAttributeList:m,config:s,stepList:c,stepInfo:n,enableColorPicker:r})):e.createElement(e.Fragment,null,e.createElement(ee,{toolName:te.EPointCloudName.PointCloud,selectedToolName:a,onChange:v=>f==null?void 0:f(v)}),e.createElement(M,{toolInstance:t,attributeList:S,subAttributeList:m,config:s,stepList:c,stepInfo:n,enableColorPicker:r}),(s==null?void 0:s.trackConfigurable)===!0&&e.createElement(e.Fragment,null,e.createElement(Le,null),e.createElement(V,{style:{margin:0}}),e.createElement(we,{imgList:l,imgIndex:p})))},Be=n=>{var t,l,p,c;const r=le.getCurrentStepInfo((t=n.annotation)==null?void 0:t.step,(l=n.annotation)==null?void 0:l.stepList),u=(p=n.annotation)==null?void 0:p.toolInstance,d=(c=n.annotation)==null?void 0:c.stepList;return{stepInfo:r,toolInstance:u,imgList:n.annotation.imgList,imgIndex:n.annotation.imgIndex,stepList:d}};var je=re(Be,null,null,{context:ce})(he);export{W as PointCloudSegToolIcon,je as default};
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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.17.0-alpha.3",
3
+ "version": "1.17.0-alpha.4",
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.2",
47
- "@labelbee/lb-utils": "1.13.0-alpha.2",
46
+ "@labelbee/lb-annotation": "1.20.0-alpha.3",
47
+ "@labelbee/lb-utils": "1.13.0-alpha.3",
48
48
  "@labelbee/wavesurfer": "1.0.0",
49
49
  "@types/react-dom": "^18.2.7",
50
50
  "ahooks": "^3.4.0",