@labelbee/lb-components 1.7.0-alpha.4 → 1.7.0-alpha.6

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 PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),annotation=require("../../hooks/annotation.js"),useStatus=require("./hooks/useStatus.js"),index=require("../../utils/index.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),ctx=require("../../store/ctx.js"),useHistory=require("./hooks/useHistory.js"),useAttribute=require("./hooks/useAttribute.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(s,r,e)=>r in s?__defProp(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,__spreadValues=(s,r)=>{for(var e in r||(r={}))__hasOwnProp.call(r,e)&&__defNormalProp(s,e,r[e]);if(__getOwnPropSymbols)for(var e of __getOwnPropSymbols(r))__propIsEnum.call(r,e)&&__defNormalProp(s,e,r[e]);return s},__spreadProps=(s,r)=>__defProps(s,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:s,config:r})=>{const e=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:C,selectNextBox:w,selectPrevBox:m,updateSelectedBox:v}=useSingleBox.useSingleBox(),{clearAllResult:d}=useStatus.useStatus(),g=index.jsonParser(s.result),{copySelectedBoxes:k,pasteSelectedBoxes:B,copiedBoxes:_}=useBoxes.useBoxes(),{toolInstanceRef:n}=annotation.useCustomToolInstance({basicInfo:g}),{updateRotate:p}=useRotate.useRotate({currentData:s}),{updatePointCloudData:b}=usePointCloudViews.usePointCloudViews(),{redo:f,undo:P,pushHistoryWithList:h}=useHistory.useHistory(),{syncThreeViewsAttribute:x,reRenderPointCloud3DBox:A}=useAttribute.useAttribute(),S=(t,o)=>{var c;const{topViewInstance:a,mainViewInstance:i}=e;if(!a)return;const{pointCloud2dOperation:u}=a;switch(t){case"q":{p(2);break}case"e":p(-2);break;case"g":p(180);break;case"u":{const l=u.pattern===EPolygonPattern.Normal?EPolygonPattern.Rect:EPolygonPattern.Normal;u.setPattern(l);const q={[EPolygonPattern.Normal]:"Normal Pattern",[EPolygonPattern.Rect]:"Rect Pattern"};antd.message.success(`Change Pattern to ${q[l]} successfully`),u.clearActiveStatus(),u.clearDrawingStatus()}break;case"+":i==null||i.updatePointSize(!0);break;case"-":i==null||i.updatePointSize(!1);break;case"v":e.setPointCloudValid(!e.valid);break;case"tab":if(o.shiftKey){m();break}w();break;case"f":C();break;default:{if(((c=r.attributeList)==null?void 0:c.length)>0){const l=lbAnnotation.AttributeUtils.getAttributeByKeycode(o.keyCode,r.attributeList);l!==void 0&&n.current.setDefaultAttribute(l)}return}}},j=(t,o)=>{switch(t){case"c":k();break;case"v":B();break;case"a":e.selectedAllBoxes();break;case"z":{o.shiftKey?f():P();break}}},y=t=>{const o=t.key.toLocaleLowerCase();if(t.ctrlKey){j(o,t);return}S(o,t)};return React.useEffect(()=>{const{topViewInstance:t}=e;if(!!t)return window.addEventListener("keydown",y),()=>{window.removeEventListener("keydown",y)}},[e,_,r]),React.useEffect(()=>{b==null||b()},[s,e.mainViewInstance]),React.useEffect(()=>{n.current.exportData=()=>[e.pointCloudBoxList,{valid:e.valid}],n.current.exportCustomData=()=>{var t;return{renderPolygon:(t=e.polygonList)!=null?t:[]}},n.current.setDefaultAttribute=t=>{x(t);const o=e.selectedPointCloudBox;o&&(o.attribute=t,v(o),A(o))},n.current.setSubAttribute=(t,o)=>{var c;const a=e.selectedPointCloudBox;if(a){const i=(c=a==null?void 0:a.subAttribute)!=null?c:{};a.subAttribute=__spreadProps(__spreadValues({},i),{[t]:o}),v(a)}},n.current.clearResult=()=>{d==null||d()},n.current.redo=()=>{f()},n.current.undo=()=>{P()},n.current.setValid=t=>{n.current.valid=t,setTimeout(()=>{e.setPointCloudValid(t),t===!1&&d()})}},[e.pointCloudBoxList,e.selectedID,e.valid,e.polygonList]),React.useEffect(()=>{n.current.history={pushHistory:t=>{h({pointCloudBoxList:t})},initRecord:()=>{}}},[]),React.useEffect(()=>{var t;const o=(t=e.topViewInstance)==null?void 0:t.pointCloud2dOperation;if(!o)return;const c=u=>{x(u)},a=u=>{antd.message.error(u)},i=u=>{antd.message.info(u)};return o.on("syncAttribute",c),o.on("messageError",a),o.on("messageInfo",i),()=>{o.unbind("syncAttribute",c),o.unbind("messageError",a),o.unbind("messageInfo",i)}},[e.topViewInstance]),null};var PointCloudListener$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudListener);module.exports=PointCloudListener$1;
1
+ "use strict";var PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),annotation=require("../../hooks/annotation.js"),useStatus=require("./hooks/useStatus.js"),index=require("../../utils/index.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),ctx=require("../../store/ctx.js"),useHistory=require("./hooks/useHistory.js"),useAttribute=require("./hooks/useAttribute.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(s,r,e)=>r in s?__defProp(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,__spreadValues=(s,r)=>{for(var e in r||(r={}))__hasOwnProp.call(r,e)&&__defNormalProp(s,e,r[e]);if(__getOwnPropSymbols)for(var e of __getOwnPropSymbols(r))__propIsEnum.call(r,e)&&__defNormalProp(s,e,r[e]);return s},__spreadProps=(s,r)=>__defProps(s,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:s,config:r})=>{const e=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:C,selectNextBox:w,selectPrevBox:m,updateSelectedBox:v}=useSingleBox.useSingleBox(),{clearAllResult:d}=useStatus.useStatus(),g=index.jsonParser(s.result),{copySelectedBoxes:k,pasteSelectedBoxes:B,copiedBoxes:h}=useBoxes.useBoxes(),{toolInstanceRef:n}=annotation.useCustomToolInstance({basicInfo:g}),{updateRotate:p}=useRotate.useRotate({currentData:s}),{updatePointCloudData:b}=usePointCloudViews.usePointCloudViews(),{redo:f,undo:P,pushHistoryWithList:_}=useHistory.useHistory(),{syncThreeViewsAttribute:x,reRenderPointCloud3DBox:A}=useAttribute.useAttribute(),S=(t,o)=>{var c;const{topViewInstance:a,mainViewInstance:u}=e;if(!a)return;const{pointCloud2dOperation:i}=a;switch(t){case"q":{p(2);break}case"e":p(-2);break;case"g":p(180);break;case"u":{const l=i.pattern===EPolygonPattern.Normal?EPolygonPattern.Rect:EPolygonPattern.Normal;i.setPattern(l);const q={[EPolygonPattern.Normal]:"Normal Pattern",[EPolygonPattern.Rect]:"Rect Pattern"};antd.message.success(`Change Pattern to ${q[l]} successfully`),i.clearActiveStatus(),i.clearDrawingStatus()}break;case"+":u==null||u.updatePointSize(!0);break;case"-":u==null||u.updatePointSize(!1);break;case"v":e.setPointCloudValid(!e.valid);break;case"tab":if(o.shiftKey){m();break}w();break;case"f":C();break;default:{if(((c=r.attributeList)==null?void 0:c.length)>0){const l=lbAnnotation.AttributeUtils.getAttributeByKeycode(o.keyCode,r.attributeList);l!==void 0&&n.current.setDefaultAttribute(l)}return}}},j=(t,o)=>{switch(t){case"c":k();break;case"v":B();break;case"a":e.selectedAllBoxes();break;case"z":{o.shiftKey?f():P();break}}},y=t=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(t))return;const o=t.key.toLocaleLowerCase();if(t.ctrlKey){j(o,t);return}S(o,t)};return React.useEffect(()=>{const{topViewInstance:t}=e;if(!!t)return window.addEventListener("keydown",y),()=>{window.removeEventListener("keydown",y)}},[e,h,r]),React.useEffect(()=>{b==null||b()},[s,e.mainViewInstance]),React.useEffect(()=>{n.current.exportData=()=>[e.pointCloudBoxList,{valid:e.valid}],n.current.exportCustomData=()=>{var t;return{renderPolygon:(t=e.polygonList)!=null?t:[]}},n.current.setDefaultAttribute=t=>{x(t);const o=e.selectedPointCloudBox;o&&(o.attribute=t,v(o),A(o))},n.current.setSubAttribute=(t,o)=>{var c;const a=e.selectedPointCloudBox;if(a){const u=(c=a==null?void 0:a.subAttribute)!=null?c:{};a.subAttribute=__spreadProps(__spreadValues({},u),{[t]:o}),v(a)}},n.current.clearResult=()=>{d==null||d()},n.current.redo=()=>{f()},n.current.undo=()=>{P()},n.current.setValid=t=>{n.current.valid=t,setTimeout(()=>{e.setPointCloudValid(t),t===!1&&d()})}},[e.pointCloudBoxList,e.selectedID,e.valid,e.polygonList]),React.useEffect(()=>{n.current.history={pushHistory:t=>{_({pointCloudBoxList:t})},initRecord:()=>{}}},[]),React.useEffect(()=>{var t;const o=(t=e.topViewInstance)==null?void 0:t.pointCloud2dOperation;if(!o)return;const c=i=>{x(i)},a=i=>{antd.message.error(i)},u=i=>{antd.message.info(i)};return o.on("syncAttribute",c),o.on("messageError",a),o.on("messageInfo",u),()=>{o.unbind("syncAttribute",c),o.unbind("messageError",a),o.unbind("messageInfo",u)}},[e.topViewInstance]),null};var PointCloudListener$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudListener);module.exports=PointCloudListener$1;
@@ -1 +1 @@
1
- "use strict";var index=require("../../../../constant/index.js"),actionCreators=require("../../../../store/annotation/actionCreators.js"),ctx=require("../../../../store/ctx.js"),antd=require("antd"),React=require("react"),reactI18next=require("react-i18next"),icons=require("@ant-design/icons"),lbUtils=require("@labelbee/lb-utils"),reactRedux=require("react-redux"),useSingleBox=require("../../hooks/useSingleBox.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,r,a)=>r in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,__spreadValues=(e,r)=>{for(var a in r||(r={}))__hasOwnProp.call(r,a)&&__defNormalProp(e,a,r[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(r))__propIsEnum.call(r,a)&&__defNormalProp(e,a,r[a]);return e},__spreadProps=(e,r)=>__defProps(e,__getOwnPropDescs(r));const layout={labelCol:{span:8},wrapperCol:{span:16}},defaultNumberRules=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"}],defaultSelectedAttribute=[{required:!0,message:"\u8BF7\u9009\u62E9\u4E3B\u5C5E\u6027"}],DECIMAL_PLACES=2,PrefixTag=({text:e})=>React__default.default.createElement("span",{style:{borderRadius:"4px 0px 0px 4px",padding:"0px 12px",background:"#FAFAFA",border:"1px solid rgb(217 217 217)",borderRight:"0",display:"flex",alignItems:"center",height:32}},e),UnifyParamsModal=({id:e,visible:r,onCancel:a,config:s,imgList:g,imgIndex:v})=>{const b=ctx.useDispatch(),{selectedBox:l}=useSingleBox.useSingleBox(),[c,f]=React.useState(),[d]=antd.Form.useForm(),{t:u}=reactI18next.useTranslation();React.useEffect(()=>{r===!1&&(d.resetFields(),f(void 0))},[r]);const F=t=>{var i;if(!e)return;if(!c){antd.message.info("\u8BE5\u8303\u56F4\u4E0D\u5B58\u5728\u66F4\u6539\u6570\u636E, \u8BF7\u66F4\u6539\u7EDF\u4E00\u8303\u56F4");return}b(actionCreators.ToSubmitFileData(index.ESubmitType.SyncImgList));const n={attribute:t.attribute};if(s.secondaryAttributeConfigurable){const o={};(i=s.inputList)==null||i.forEach(m=>{const p=t[m.value];p!==void 0&&Object.assign(o,{[m.value]:p})}),Object.keys(o).length>0&&Object.assign(n,{subAttribute:o})}c&&Object.assign(n,c),b(actionCreators.BatchUpdateResultByTrackID(e,n,[t.prevPage-1,t.nextPage-1])),a()},y=React.useCallback(()=>{var t;const{prevPage:i,nextPage:n}=d.getFieldsValue(["prevPage","nextPage"]),o=g.filter((p,P)=>lbAnnotation.MathUtils.isInRange(P,[i-1,n-1]));if(!((o==null?void 0:o.length)>0)||!(l==null?void 0:l.info)||((t=l==null?void 0:l.info)==null?void 0:t.trackID)===void 0){f(void 0);return}const m=lbUtils.PointCloudUtils.getMaxSizeFromBox({trackID:l.info.trackID,imgList:o});f(m)},[g,l,v]),h=()=>d.submit(),S=()=>{if(!c||!(l==null?void 0:l.info))return;const t={marginRight:16},{length:i,width:n,height:o}=lbUtils.PointCloudUtils.transferBox2Kitti(__spreadValues(__spreadValues({},l==null?void 0:l.info),c));return React__default.default.createElement("div",null,React__default.default.createElement("span",{style:t},u("Length"),": ",i.toFixed(DECIMAL_PLACES)),React__default.default.createElement("span",{style:t},u("Width"),": ",n.toFixed(DECIMAL_PLACES)),React__default.default.createElement("span",{style:t},u("Height"),": ",o.toFixed(DECIMAL_PLACES)),React__default.default.createElement(antd.Popover,{placement:"rightBottom",content:"\u7EDF\u4E00\u5C3A\u5BF8\u4E3A\u8BE5ID\u7684\u6240\u6709\u6807\u6CE8\u6846\u4E2D\u6700\u5927\u7684\u5C3A\u5BF8"},React__default.default.createElement(icons.QuestionCircleOutlined,null)))},E={width:"200px"},x={marginBottom:"24px",display:"flex",alignItems:"center"};return React__default.default.createElement(antd.Modal,{title:u("UnifyParams"),visible:r,onCancel:a,onOk:h,wrapClassName:"labelbee-custom-modal"},React__default.default.createElement(antd.Form,__spreadProps(__spreadValues({},layout),{form:d,onFinish:F}),React__default.default.createElement(antd.Form.Item,{name:"id",label:u("CurrentBoxTrackIDs")},e),React__default.default.createElement(antd.Form.Item,{label:u("UnifyTrackIDRange"),required:!0},React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block"},rules:defaultNumberRules,name:"prevPage",noStyle:!0},React__default.default.createElement(antd.InputNumber,{min:1,style:{width:"80px"},onChange:()=>y()})),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",textAlign:"center"}},"-"),React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block"},rules:defaultNumberRules,name:"nextPage",noStyle:!0},React__default.default.createElement(antd.InputNumber,{min:1,style:{width:"80px"},onChange:()=>y()})),React__default.default.createElement("span",{style:{display:"inline-block",width:"40x",marginLeft:"10px",textAlign:"center"}},u("Page"))),React__default.default.createElement(antd.Form.Item,{name:"UnifySize",label:u("UnifySize")},S()),React__default.default.createElement(antd.Form.Item,{label:u("UnifyTag"),required:!0},React__default.default.createElement("div",{style:x},React__default.default.createElement(PrefixTag,{text:u("Attribute")}),React__default.default.createElement(antd.Form.Item,{name:"attribute",noStyle:!0,rules:defaultSelectedAttribute},React__default.default.createElement(antd.Select,{style:E},s.attributeList.map(t=>React__default.default.createElement(antd.Select.Option,{key:t.value,value:t.value},t.key))))),s.secondaryAttributeConfigurable&&s.inputList.map(t=>{var i;return React__default.default.createElement("div",{key:t.value,style:x},React__default.default.createElement(PrefixTag,{text:t.key}),React__default.default.createElement(antd.Form.Item,{name:t.value,noStyle:!0,required:!1},React__default.default.createElement(antd.Select,{style:E},(i=t.subSelected)==null?void 0:i.map(n=>React__default.default.createElement(antd.Select.Option,{key:n.value,value:n.value},n.key)))))}))))},mapStateToProps=e=>({imgList:e.annotation.imgList,imgIndex:e.annotation.imgIndex});var UnifyParamsModal$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(UnifyParamsModal);module.exports=UnifyParamsModal$1;
1
+ "use strict";var index=require("../../../../constant/index.js"),actionCreators=require("../../../../store/annotation/actionCreators.js"),ctx=require("../../../../store/ctx.js"),antd=require("antd"),React=require("react"),reactI18next=require("react-i18next"),icons=require("@ant-design/icons"),lbUtils=require("@labelbee/lb-utils"),reactRedux=require("react-redux"),useSingleBox=require("../../hooks/useSingleBox.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,r,a)=>r in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,__spreadValues=(e,r)=>{for(var a in r||(r={}))__hasOwnProp.call(r,a)&&__defNormalProp(e,a,r[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(r))__propIsEnum.call(r,a)&&__defNormalProp(e,a,r[a]);return e},__spreadProps=(e,r)=>__defProps(e,__getOwnPropDescs(r));const layout={labelCol:{span:8},wrapperCol:{span:16}},defaultNumberRules=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"}],defaultSelectedAttribute=[{required:!0,message:"\u8BF7\u9009\u62E9\u4E3B\u5C5E\u6027"}],DECIMAL_PLACES=2,PrefixTag=({text:e})=>React__default.default.createElement("span",{style:{borderRadius:"4px 0px 0px 4px",padding:"0px 12px",background:"#FAFAFA",border:"1px solid rgb(217 217 217)",borderRight:"0",display:"flex",alignItems:"center",height:32}},e),UnifyParamsModal=({id:e,visible:r,onCancel:a,config:s,imgList:g,imgIndex:v})=>{const b=ctx.useDispatch(),{selectedBox:l}=useSingleBox.useSingleBox(),[c,f]=React.useState(),[d]=antd.Form.useForm(),{t:u}=reactI18next.useTranslation();React.useEffect(()=>{r===!1&&(d.resetFields(),f(void 0))},[r]);const F=t=>{var i;if(!e)return;if(!c){antd.message.info("\u8BE5\u8303\u56F4\u4E0D\u5B58\u5728\u66F4\u6539\u6570\u636E, \u8BF7\u66F4\u6539\u7EDF\u4E00\u8303\u56F4");return}b(actionCreators.ToSubmitFileData(index.ESubmitType.SyncImgList));const n={attribute:t.attribute};if(s.secondaryAttributeConfigurable){const o={};(i=s.inputList)==null||i.forEach(m=>{const p=t[m.value];p!==void 0&&Object.assign(o,{[m.value]:p})}),Object.keys(o).length>0&&Object.assign(n,{subAttribute:o})}c&&Object.assign(n,c),b(actionCreators.BatchUpdateResultByTrackID(e,n,[t.prevPage-1,t.nextPage-1])),a()},y=React.useCallback(()=>{var t;const{prevPage:i,nextPage:n}=d.getFieldsValue(["prevPage","nextPage"]),o=g.filter((p,P)=>lbAnnotation.MathUtils.isInRange(P,[i-1,n-1]));if(!((o==null?void 0:o.length)>0)||!(l==null?void 0:l.info)||((t=l==null?void 0:l.info)==null?void 0:t.trackID)===void 0){f(void 0);return}const m=lbUtils.PointCloudUtils.getMaxSizeFromBox({trackID:l.info.trackID,imgList:o});f(m)},[g,l,v]),h=()=>d.submit(),S=()=>{if(!c||!(l==null?void 0:l.info))return;const t={marginRight:16},{length:i,width:n,height:o}=lbUtils.PointCloudUtils.transferBox2Kitti(__spreadValues(__spreadValues({},l==null?void 0:l.info),c));return React__default.default.createElement("div",null,React__default.default.createElement("span",{style:t},u("Length"),": ",i.toFixed(DECIMAL_PLACES)),React__default.default.createElement("span",{style:t},u("Width"),": ",n.toFixed(DECIMAL_PLACES)),React__default.default.createElement("span",{style:t},u("Height"),": ",o.toFixed(DECIMAL_PLACES)),React__default.default.createElement(antd.Popover,{placement:"rightBottom",content:"\u7EDF\u4E00\u5C3A\u5BF8\u4E3A\u8BE5ID\u7684\u6240\u6709\u6807\u6CE8\u6846\u4E2D\u6700\u5927\u7684\u5C3A\u5BF8"},React__default.default.createElement(icons.QuestionCircleOutlined,null)))},E={width:"200px"},x={marginBottom:"24px",display:"flex",alignItems:"center"};return React__default.default.createElement(antd.Modal,{title:u("UnifyParams"),visible:r,onCancel:a,onOk:h,wrapClassName:"labelbee-custom-modal"},React__default.default.createElement(antd.Form,__spreadProps(__spreadValues({},layout),{form:d,onFinish:F}),React__default.default.createElement(antd.Form.Item,{name:"id",label:u("UnifyTrackID")},e),React__default.default.createElement(antd.Form.Item,{label:u("UnifyAttributeRange"),required:!0},React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block"},rules:defaultNumberRules,name:"prevPage",noStyle:!0},React__default.default.createElement(antd.InputNumber,{precision:0,min:1,style:{width:"80px"},onChange:()=>y()})),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",textAlign:"center"}},"-"),React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block"},rules:defaultNumberRules,name:"nextPage",noStyle:!0},React__default.default.createElement(antd.InputNumber,{precision:0,min:1,style:{width:"80px"},onChange:()=>y()})),React__default.default.createElement("span",{style:{display:"inline-block",width:"40x",marginLeft:"10px",textAlign:"center"}},u("Page"))),React__default.default.createElement(antd.Form.Item,{name:"UnifySize",label:u("UnifySize")},S()),React__default.default.createElement(antd.Form.Item,{label:u("UnifyTag"),required:!0},React__default.default.createElement("div",{style:x},React__default.default.createElement(PrefixTag,{text:u("Attribute")}),React__default.default.createElement(antd.Form.Item,{name:"attribute",noStyle:!0,rules:defaultSelectedAttribute},React__default.default.createElement(antd.Select,{style:E},s.attributeList.map(t=>React__default.default.createElement(antd.Select.Option,{key:t.value,value:t.value},t.key))))),s.secondaryAttributeConfigurable&&s.inputList.map(t=>{var i;return React__default.default.createElement("div",{key:t.value,style:x},React__default.default.createElement(PrefixTag,{text:t.key}),React__default.default.createElement(antd.Form.Item,{name:t.value,noStyle:!0,required:!1},React__default.default.createElement(antd.Select,{style:E},(i=t.subSelected)==null?void 0:i.map(n=>React__default.default.createElement(antd.Select.Option,{key:n.value,value:n.value},n.key)))))}))))},mapStateToProps=e=>({imgList:e.annotation.imgList,imgIndex:e.annotation.imgIndex});var UnifyParamsModal$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(UnifyParamsModal);module.exports=UnifyParamsModal$1;
@@ -5,7 +5,6 @@
5
5
  * @returns
6
6
  */
7
7
  export declare const isInvalidNumber: (value: any, nonZero?: boolean) => boolean;
8
- export declare const decimalCheck: (rule: any, value: any, decimalNum?: number) => Promise<void>;
9
8
  interface IProps {
10
9
  id: number;
11
10
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index=require("../../../../../../constant/index.js"),actionCreators=require("../../../../../../store/annotation/actionCreators.js"),ctx=require("../../../../../../store/ctx.js"),antd=require("antd"),React=require("react"),reactI18next=require("react-i18next");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,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const layout={labelCol:{span:8},wrapperCol:{span:16}},isInvalidNumber=(e,t=!1)=>{const r=Number(e);return!!(typeof e=="undefined"||r<0||isNaN(r)||t===!0&&r===0)},decimalCheck=(e,t,r=0)=>{const u=Number(t);if(isInvalidNumber(t))return Promise.reject(new Error("\u8BF7\u8F93\u5165\u4E00\u4E2A\u5927\u4E8E\u7B49\u4E8E0\u7684\u6570\u5B57"));const n=u.toString().split(".")[1];if((n==null?void 0:n.length)>r){let a=`\u8BF7\u8F93\u5165\u4E00\u4E2A\u5C0F\u6570\u4F4D\u6570\u4E0D\u8D85\u8FC7${r}\u4F4D\u6570\u7684\u6570\u5B57`;return r<1&&(a="\u8BF7\u8F93\u5165\u4E00\u4E2A\u6B63\u6574\u6570"),Promise.reject(a)}return Promise.resolve()},defaultNumberRules=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"},{validator:(e,t)=>decimalCheck(e,t,0)}],BatchUpdateModal=({id:e})=>{const t=ctx.useDispatch(),[r,u]=React.useState(!1),[n]=antd.Form.useForm(),{t:a}=reactI18next.useTranslation(),o=l=>{t(actionCreators.ToSubmitFileData(index.ESubmitType.SyncImgList)),t(actionCreators.BatchUpdateTrackID(e,l.newID,[l.prevPage-1,l.nextPage-1])),u(!1)},s=()=>u(!1),i=()=>n.submit();return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("a",{style:{color:"#666FFF"},onClick:()=>u(!0)},a("BatchUpdateText")),React__default.default.createElement(antd.Modal,{title:a("BatchUpdateTrackID"),visible:r,onCancel:s,onOk:i,wrapClassName:"labelbee-custom-modal"},React__default.default.createElement(antd.Form,__spreadProps(__spreadValues({},layout),{form:n,onFinish:o}),React__default.default.createElement(antd.Form.Item,{name:"id",label:a("CurrentBoxTrackIDs")},e),React__default.default.createElement(antd.Form.Item,{name:"newID",label:a("TrackIDUnifyAs"),rules:defaultNumberRules},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement(antd.Form.Item,{label:a("UnifyTrackIDRange"),required:!0},React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:defaultNumberRules,name:"prevPage"},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},"-"),React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:defaultNumberRules,name:"nextPage"},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},a("Page"))))))};exports.decimalCheck=decimalCheck,exports.default=BatchUpdateModal,exports.isInvalidNumber=isInvalidNumber;
1
+ "use strict";var index=require("../../../../../../constant/index.js"),actionCreators=require("../../../../../../store/annotation/actionCreators.js"),ctx=require("../../../../../../store/ctx.js"),antd=require("antd"),React=require("react"),reactI18next=require("react-i18next");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,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const layout={labelCol:{span:8},wrapperCol:{span:16}},inputStyle={width:"80px"},BatchUpdateModal=({id:e})=>{const t=ctx.useDispatch(),[r,n]=React.useState(!1),[s]=antd.Form.useForm(),{t:a}=reactI18next.useTranslation(),i=o=>{t(actionCreators.ToSubmitFileData(index.ESubmitType.SyncImgList)),t(actionCreators.BatchUpdateTrackID(e,o.newID,[o.prevPage-1,o.nextPage-1])),n(!1)},c=()=>n(!1),u=()=>s.submit(),l=[{required:!0,message:a("PositiveIntegerCheck")}];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("a",{style:{color:"#666FFF"},onClick:()=>n(!0)},a("BatchUpdateText")),React__default.default.createElement(antd.Modal,{title:a("BatchUpdateTrackID"),visible:r,onCancel:c,onOk:u,wrapClassName:"labelbee-custom-modal"},React__default.default.createElement(antd.Form,__spreadProps(__spreadValues({},layout),{form:s,onFinish:i}),React__default.default.createElement(antd.Form.Item,{name:"id",label:a("CurrentBoxTrackIDs")},e),React__default.default.createElement(antd.Form.Item,{name:"newID",label:a("TrackIDUnifyAs"),rules:l},React__default.default.createElement(antd.InputNumber,{precision:0,min:1,style:inputStyle})),React__default.default.createElement(antd.Form.Item,{label:a("UnifyTrackIDRange"),required:!0},React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block"},rules:l,name:"prevPage",noStyle:!0},React__default.default.createElement(antd.InputNumber,{precision:0,min:1,style:inputStyle})),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",textAlign:"center"}},"-"),React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block"},rules:l,name:"nextPage",noStyle:!0},React__default.default.createElement(antd.InputNumber,{precision:0,min:1,style:inputStyle})),React__default.default.createElement("span",{style:{display:"inline-block",width:"40x",marginLeft:"10px",textAlign:"center"}},a("Page"))))))};module.exports=BatchUpdateModal;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),icons=require("@ant-design/icons"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js"),index$1=require("./components/batchUpdateModal/index.js"),lbUtils=require("@labelbee/lb-utils"),index$2=require("../../../../components/attributeList/index.js"),useAttribute=require("../../../../components/pointCloudView/hooks/useAttribute.js");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React);const AnnotatedBox=({imgList:l,imgIndex:r})=>{const u=React.useContext(PointCloudContext.PointCloudContext),[o,c]=React.useState([]),{t:i}=reactI18next.useTranslation();React.useEffect(()=>{const n=l;let e=new Map;c(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:n,extraBoxList:p,ignoreIndexList:[r]}).filter(a=>!a.trackID||e.get(a.trackID)?!1:(e.set(a.trackID,!0),!0)).sort((a,s)=>{var d,f;const v=(d=a==null?void 0:a.trackID)!=null?d:0,g=(f=s==null?void 0:s.trackID)!=null?f:0;return v-g}).map(a=>{var s;return(s=a==null?void 0:a.trackID)!=null?s:0}))},[u.pointCloudBoxList,l]);const{pointCloudBoxList:p}=u;return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:16}},i("AllTrackIDs")),React__default.default.createElement("div",null,o.map(n=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:n,style:{color:"#666",marginBottom:8}},n))))},BoxTrackIDInput=()=>{const[l,r]=React.useState(!1),{pointCloudBoxList:u}=React.useContext(PointCloudContext.PointCloudContext),{selectedBox:o,updateSelectedBox:c}=useSingleBox.useSingleBox(),[i,p]=React.useState(""),{t:n}=reactI18next.useTranslation(),e=o==null?void 0:o.info.trackID,a=d=>!!u.find(v=>v.trackID===d&&v.id!==(o==null?void 0:o.info.id)),s=(d=!1)=>{const f=parseInt(i,10);if(d&&r(!1),isNaN(f)){antd.message.error(n("PositiveIntegerCheck"));return}if(i.indexOf(".")>-1){antd.message.error(n("NotAllowDecimalPointsInTrackID"));return}if(a(f)){antd.message.error(n("DuplicateTrackIDsExist"));return}if(!(f>0)){antd.message.error(n("PositiveIntegerCheck"));return}c({trackID:f})};return React.useEffect(()=>{r(!1)},[e]),React__default.default.createElement("div",{style:{padding:24}},React__default.default.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,n("CurrentBoxTrackIDs")),e&&React__default.default.createElement(index$1.default,{id:e})),React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},l&&e?React__default.default.createElement(antd.Input,{defaultValue:e,onChange:d=>{p(d.target.value)},disabled:!e,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):React__default.default.createElement("span",null,e),React__default.default.createElement(icons.EditFilled,{style:{color:"#999",marginLeft:16,cursor:typeof e!="undefined"?"pointer":"not-allowed"},onClick:()=>{e&&r(!l)}})))},AttributeUpdater=({attributeList:l,subAttributeList:r,toolInstance:u})=>{var o,c,i;const{selectedBox:p}=useSingleBox.useSingleBox(),n=React.useContext(PointCloudContext.PointCloudContext),{t:e}=reactI18next.useTranslation(),{defaultAttribute:a}=useAttribute.useAttribute(),s={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},d={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},f=t=>{u.setDefaultAttribute(t)},v=(t,x)=>{u.setSubAttribute(t,x)},g=l.map(t=>({label:t.key,value:t.value,color:t==null?void 0:t.color}));return React__default.default.createElement("div",null,React__default.default.createElement("div",{style:s},e("Attribute")),React__default.default.createElement(index$2.default,{list:g,forbidDefault:!0,selectedAttribute:(i=(c=(o=n.selectedPointCloudBox)==null?void 0:o.attribute)!=null?c:a)!=null?i:"",attributeChanged:t=>f(t)}),React__default.default.createElement(antd.Divider,{style:{margin:0}}),p&&React__default.default.createElement(React__default.default.Fragment,null,r.map(t=>{var x,C,I,b,E;return(t==null?void 0:t.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12},key:t.value},React__default.default.createElement("div",{style:d},e("SubAttribute"),"-",t.key),((x=t.subSelected)==null?void 0:x.length)<5?React__default.default.createElement(index$2.default,{list:t.subSelected.map(m=>({label:m.key,value:m.value})),selectedAttribute:(I=(C=n.selectedPointCloudBox)==null?void 0:C.subAttribute)==null?void 0:I[t.value],num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:m=>v(t.value,m),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(E=(b=n.selectedPointCloudBox)==null?void 0:b.subAttribute)==null?void 0:E[t.value],placeholder:e("PleaseSelect"),onChange:m=>v(t.value,m),allowClear:!0},t.subSelected.map(m=>React__default.default.createElement(antd.Select.Option,{key:m.value,value:m.value},m.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))})))},PointCloudToolSidebar=({stepInfo:l,toolInstance:r,imgList:u,imgIndex:o})=>{var c,i;const{updatePointCloudPattern:p,pointCloudPattern:n}=useStatus.useStatus(),e=index.jsonParser(l.config),a=(c=e==null?void 0:e.attributeList)!=null?c:[],s=(e==null?void 0:e.secondaryAttributeConfigurable)===!0?(i=e==null?void 0:e.inputList)!=null?i:[]:[];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:n,onChange:d=>p==null?void 0:p(d)}),(e==null?void 0:e.trackConfigurable)===!0&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(AnnotatedBox,{imgList:u,imgIndex:o}),React__default.default.createElement(BoxTrackIDInput,null),React__default.default.createElement(antd.Divider,{style:{margin:0}})),React__default.default.createElement(AttributeUpdater,{toolInstance:r,attributeList:a,subAttributeList:s}))},mapStateToProps=l=>{var r,u,o;const c=StepUtils.getCurrentStepInfo((r=l.annotation)==null?void 0:r.step,(u=l.annotation)==null?void 0:u.stepList),i=(o=l.annotation)==null?void 0:o.toolInstance;return{stepInfo:c,toolInstance:i,imgList:l.annotation.imgList,imgIndex:l.annotation.imgIndex}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudToolSidebar);module.exports=PointCloudToolSidebar$1;
1
+ "use strict";var React=require("react"),icons=require("@ant-design/icons"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js"),index$1=require("./components/batchUpdateModal/index.js"),lbUtils=require("@labelbee/lb-utils"),index$2=require("../../../../components/attributeList/index.js"),useAttribute=require("../../../../components/pointCloudView/hooks/useAttribute.js");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React);const AnnotatedBox=({imgList:l,imgIndex:r})=>{const u=React.useContext(PointCloudContext.PointCloudContext),[o,c]=React.useState([]),{t:i}=reactI18next.useTranslation();React.useEffect(()=>{const n=l;let e=new Map;c(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:n,extraBoxList:p,ignoreIndexList:[r]}).filter(a=>!a.trackID||e.get(a.trackID)?!1:(e.set(a.trackID,!0),!0)).sort((a,s)=>{var d,f;const v=(d=a==null?void 0:a.trackID)!=null?d:0,g=(f=s==null?void 0:s.trackID)!=null?f:0;return v-g}).map(a=>{var s;return(s=a==null?void 0:a.trackID)!=null?s:0}))},[u.pointCloudBoxList,l]);const{pointCloudBoxList:p}=u;return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:16}},i("AllTrackIDs")),React__default.default.createElement("div",null,o.map(n=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:n,style:{color:"#666",marginBottom:8}},n))))},BoxTrackIDInput=()=>{const[l,r]=React.useState(!1),{pointCloudBoxList:u}=React.useContext(PointCloudContext.PointCloudContext),{selectedBox:o,updateSelectedBox:c}=useSingleBox.useSingleBox(),[i,p]=React.useState(""),{t:n}=reactI18next.useTranslation(),e=o==null?void 0:o.info.trackID,a=d=>!!u.find(v=>v.trackID===d&&v.id!==(o==null?void 0:o.info.id)),s=(d=!1)=>{const f=parseInt(i,10);if(d&&r(!1),isNaN(f)){antd.message.error(n("PositiveIntegerCheck"));return}if(i.indexOf(".")>-1){antd.message.error(n("NotAllowDecimalPointsInTrackID"));return}if(a(f)){antd.message.error(n("DuplicateTrackIDsExist"));return}if(!(f>0)){antd.message.error(n("PositiveIntegerCheck"));return}c({trackID:f})};return React.useEffect(()=>{r(!1)},[e]),React__default.default.createElement("div",{style:{padding:24}},React__default.default.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,n("CurrentBoxTrackIDs")),e&&React__default.default.createElement(index$1,{id:e})),React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},l&&e?React__default.default.createElement(antd.Input,{defaultValue:e,onChange:d=>{p(d.target.value)},disabled:!e,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):React__default.default.createElement("span",null,e),React__default.default.createElement(icons.EditFilled,{style:{color:"#999",marginLeft:16,cursor:typeof e!="undefined"?"pointer":"not-allowed"},onClick:()=>{e&&r(!l)}})))},AttributeUpdater=({attributeList:l,subAttributeList:r,toolInstance:u})=>{var o,c,i;const{selectedBox:p}=useSingleBox.useSingleBox(),n=React.useContext(PointCloudContext.PointCloudContext),{t:e}=reactI18next.useTranslation(),{defaultAttribute:a}=useAttribute.useAttribute(),s={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},d={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},f=t=>{u.setDefaultAttribute(t)},v=(t,x)=>{u.setSubAttribute(t,x)},g=l.map(t=>({label:t.key,value:t.value,color:t==null?void 0:t.color}));return React__default.default.createElement("div",null,React__default.default.createElement("div",{style:s},e("Attribute")),React__default.default.createElement(index$2.default,{list:g,forbidDefault:!0,selectedAttribute:(i=(c=(o=n.selectedPointCloudBox)==null?void 0:o.attribute)!=null?c:a)!=null?i:"",attributeChanged:t=>f(t)}),React__default.default.createElement(antd.Divider,{style:{margin:0}}),p&&React__default.default.createElement(React__default.default.Fragment,null,r.map(t=>{var x,C,I,b,E;return(t==null?void 0:t.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12},key:t.value},React__default.default.createElement("div",{style:d},e("SubAttribute"),"-",t.key),((x=t.subSelected)==null?void 0:x.length)<5?React__default.default.createElement(index$2.default,{list:t.subSelected.map(m=>({label:m.key,value:m.value})),selectedAttribute:(I=(C=n.selectedPointCloudBox)==null?void 0:C.subAttribute)==null?void 0:I[t.value],num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:m=>v(t.value,m),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(E=(b=n.selectedPointCloudBox)==null?void 0:b.subAttribute)==null?void 0:E[t.value],placeholder:e("PleaseSelect"),onChange:m=>v(t.value,m),allowClear:!0},t.subSelected.map(m=>React__default.default.createElement(antd.Select.Option,{key:m.value,value:m.value},m.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))})))},PointCloudToolSidebar=({stepInfo:l,toolInstance:r,imgList:u,imgIndex:o})=>{var c,i;const{updatePointCloudPattern:p,pointCloudPattern:n}=useStatus.useStatus(),e=index.jsonParser(l.config),a=(c=e==null?void 0:e.attributeList)!=null?c:[],s=(e==null?void 0:e.secondaryAttributeConfigurable)===!0?(i=e==null?void 0:e.inputList)!=null?i:[]:[];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:n,onChange:d=>p==null?void 0:p(d)}),(e==null?void 0:e.trackConfigurable)===!0&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(AnnotatedBox,{imgList:u,imgIndex:o}),React__default.default.createElement(BoxTrackIDInput,null),React__default.default.createElement(antd.Divider,{style:{margin:0}})),React__default.default.createElement(AttributeUpdater,{toolInstance:r,attributeList:a,subAttributeList:s}))},mapStateToProps=l=>{var r,u,o;const c=StepUtils.getCurrentStepInfo((r=l.annotation)==null?void 0:r.step,(u=l.annotation)==null?void 0:u.stepList),i=(o=l.annotation)==null?void 0:o.toolInstance;return{stepInfo:c,toolInstance:i,imgList:l.annotation.imgList,imgIndex:l.annotation.imgIndex}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudToolSidebar);module.exports=PointCloudToolSidebar$1;
@@ -1 +1 @@
1
- import{PointCloudContext as D}from"./PointCloudContext.js";import{useRotate as N}from"./hooks/useRotate.js";import{useBoxes as T}from"./hooks/useBoxes.js";import{useSingleBox as K}from"./hooks/useSingleBox.js";import{useContext as H,useEffect as d}from"react";import{AttributeUtils as z,cTool as $}from"@labelbee/lb-annotation";import{message as b}from"antd";import{connect as q}from"react-redux";import{a2MapStateToProps as G}from"../../store/annotation/map.js";import{useCustomToolInstance as M}from"../../hooks/annotation.js";import{useStatus as U}from"./hooks/useStatus.js";import{jsonParser as W}from"../../utils/index.js";import{usePointCloudViews as Y}from"./hooks/usePointCloudViews.js";import{LabelBeeContext as F}from"../../store/ctx.js";import{useHistory as J}from"./hooks/useHistory.js";import{useAttribute as Q}from"./hooks/useAttribute.js";var X=Object.defineProperty,Z=Object.defineProperties,ee=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable,g=(s,r,e)=>r in s?X(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,re=(s,r)=>{for(var e in r||(r={}))te.call(r,e)&&g(s,e,r[e]);if(k)for(var e of k(r))oe.call(r,e)&&g(s,e,r[e]);return s},se=(s,r)=>Z(s,ee(r));const{EPolygonPattern:p}=$,ne=({currentData:s,config:r})=>{const e=H(D),{changeSelectedBoxValid:_,selectNextBox:h,selectPrevBox:B,updateSelectedBox:P}=K(),{clearAllResult:m}=U(),A=W(s.result),{copySelectedBoxes:j,pasteSelectedBoxes:O,copiedBoxes:S}=T(),{toolInstanceRef:n}=M({basicInfo:A}),{updateRotate:f}=N({currentData:s}),{updatePointCloudData:y}=Y(),{redo:v,undo:x,pushHistoryWithList:I}=J(),{syncThreeViewsAttribute:w,reRenderPointCloud3DBox:L}=Q(),V=(t,o)=>{var l;const{topViewInstance:a,mainViewInstance:u}=e;if(!a)return;const{pointCloud2dOperation:i}=a;switch(t){case"q":{f(2);break}case"e":f(-2);break;case"g":f(180);break;case"u":{const c=i.pattern===p.Normal?p.Rect:p.Normal;i.setPattern(c);const R={[p.Normal]:"Normal Pattern",[p.Rect]:"Rect Pattern"};b.success(`Change Pattern to ${R[c]} successfully`),i.clearActiveStatus(),i.clearDrawingStatus()}break;case"+":u==null||u.updatePointSize(!0);break;case"-":u==null||u.updatePointSize(!1);break;case"v":e.setPointCloudValid(!e.valid);break;case"tab":if(o.shiftKey){B();break}h();break;case"f":_();break;default:{if(((l=r.attributeList)==null?void 0:l.length)>0){const c=z.getAttributeByKeycode(o.keyCode,r.attributeList);c!==void 0&&n.current.setDefaultAttribute(c)}return}}},E=(t,o)=>{switch(t){case"c":j();break;case"v":O();break;case"a":e.selectedAllBoxes();break;case"z":{o.shiftKey?v():x();break}}},C=t=>{const o=t.key.toLocaleLowerCase();if(t.ctrlKey){E(o,t);return}V(o,t)};return d(()=>{const{topViewInstance:t}=e;if(!!t)return window.addEventListener("keydown",C),()=>{window.removeEventListener("keydown",C)}},[e,S,r]),d(()=>{y==null||y()},[s,e.mainViewInstance]),d(()=>{n.current.exportData=()=>[e.pointCloudBoxList,{valid:e.valid}],n.current.exportCustomData=()=>{var t;return{renderPolygon:(t=e.polygonList)!=null?t:[]}},n.current.setDefaultAttribute=t=>{w(t);const o=e.selectedPointCloudBox;o&&(o.attribute=t,P(o),L(o))},n.current.setSubAttribute=(t,o)=>{var l;const a=e.selectedPointCloudBox;if(a){const u=(l=a==null?void 0:a.subAttribute)!=null?l:{};a.subAttribute=se(re({},u),{[t]:o}),P(a)}},n.current.clearResult=()=>{m==null||m()},n.current.redo=()=>{v()},n.current.undo=()=>{x()},n.current.setValid=t=>{n.current.valid=t,setTimeout(()=>{e.setPointCloudValid(t),t===!1&&m()})}},[e.pointCloudBoxList,e.selectedID,e.valid,e.polygonList]),d(()=>{n.current.history={pushHistory:t=>{I({pointCloudBoxList:t})},initRecord:()=>{}}},[]),d(()=>{var t;const o=(t=e.topViewInstance)==null?void 0:t.pointCloud2dOperation;if(!o)return;const l=i=>{w(i)},a=i=>{b.error(i)},u=i=>{b.info(i)};return o.on("syncAttribute",l),o.on("messageError",a),o.on("messageInfo",u),()=>{o.unbind("syncAttribute",l),o.unbind("messageError",a),o.unbind("messageInfo",u)}},[e.topViewInstance]),null};var ae=q(G,null,null,{context:F})(ne);export{ae as default};
1
+ import{PointCloudContext as D}from"./PointCloudContext.js";import{useRotate as T}from"./hooks/useRotate.js";import{useBoxes as N}from"./hooks/useBoxes.js";import{useSingleBox as K}from"./hooks/useSingleBox.js";import{useContext as H,useEffect as d}from"react";import{CommonToolUtils as z,AttributeUtils as U,cTool as $}from"@labelbee/lb-annotation";import{message as b}from"antd";import{connect as q}from"react-redux";import{a2MapStateToProps as F}from"../../store/annotation/map.js";import{useCustomToolInstance as G}from"../../hooks/annotation.js";import{useStatus as M}from"./hooks/useStatus.js";import{jsonParser as W}from"../../utils/index.js";import{usePointCloudViews as Y}from"./hooks/usePointCloudViews.js";import{LabelBeeContext as J}from"../../store/ctx.js";import{useHistory as Q}from"./hooks/useHistory.js";import{useAttribute as X}from"./hooks/useAttribute.js";var Z=Object.defineProperty,tt=Object.defineProperties,et=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,ot=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable,g=(s,r,t)=>r in s?Z(s,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[r]=t,st=(s,r)=>{for(var t in r||(r={}))ot.call(r,t)&&g(s,t,r[t]);if(k)for(var t of k(r))rt.call(r,t)&&g(s,t,r[t]);return s},nt=(s,r)=>tt(s,et(r));const{EPolygonPattern:p}=$,it=({currentData:s,config:r})=>{const t=H(D),{changeSelectedBoxValid:h,selectNextBox:_,selectPrevBox:B,updateSelectedBox:P}=K(),{clearAllResult:m}=M(),A=W(s.result),{copySelectedBoxes:j,pasteSelectedBoxes:O,copiedBoxes:S}=N(),{toolInstanceRef:n}=G({basicInfo:A}),{updateRotate:f}=T({currentData:s}),{updatePointCloudData:y}=Y(),{redo:v,undo:x,pushHistoryWithList:I}=Q(),{syncThreeViewsAttribute:C,reRenderPointCloud3DBox:L}=X(),V=(e,o)=>{var l;const{topViewInstance:i,mainViewInstance:u}=t;if(!i)return;const{pointCloud2dOperation:a}=i;switch(e){case"q":{f(2);break}case"e":f(-2);break;case"g":f(180);break;case"u":{const c=a.pattern===p.Normal?p.Rect:p.Normal;a.setPattern(c);const R={[p.Normal]:"Normal Pattern",[p.Rect]:"Rect Pattern"};b.success(`Change Pattern to ${R[c]} successfully`),a.clearActiveStatus(),a.clearDrawingStatus()}break;case"+":u==null||u.updatePointSize(!0);break;case"-":u==null||u.updatePointSize(!1);break;case"v":t.setPointCloudValid(!t.valid);break;case"tab":if(o.shiftKey){B();break}_();break;case"f":h();break;default:{if(((l=r.attributeList)==null?void 0:l.length)>0){const c=U.getAttributeByKeycode(o.keyCode,r.attributeList);c!==void 0&&n.current.setDefaultAttribute(c)}return}}},E=(e,o)=>{switch(e){case"c":j();break;case"v":O();break;case"a":t.selectedAllBoxes();break;case"z":{o.shiftKey?v():x();break}}},w=e=>{if(!z.hotkeyFilter(e))return;const o=e.key.toLocaleLowerCase();if(e.ctrlKey){E(o,e);return}V(o,e)};return d(()=>{const{topViewInstance:e}=t;if(!!e)return window.addEventListener("keydown",w),()=>{window.removeEventListener("keydown",w)}},[t,S,r]),d(()=>{y==null||y()},[s,t.mainViewInstance]),d(()=>{n.current.exportData=()=>[t.pointCloudBoxList,{valid:t.valid}],n.current.exportCustomData=()=>{var e;return{renderPolygon:(e=t.polygonList)!=null?e:[]}},n.current.setDefaultAttribute=e=>{C(e);const o=t.selectedPointCloudBox;o&&(o.attribute=e,P(o),L(o))},n.current.setSubAttribute=(e,o)=>{var l;const i=t.selectedPointCloudBox;if(i){const u=(l=i==null?void 0:i.subAttribute)!=null?l:{};i.subAttribute=nt(st({},u),{[e]:o}),P(i)}},n.current.clearResult=()=>{m==null||m()},n.current.redo=()=>{v()},n.current.undo=()=>{x()},n.current.setValid=e=>{n.current.valid=e,setTimeout(()=>{t.setPointCloudValid(e),e===!1&&m()})}},[t.pointCloudBoxList,t.selectedID,t.valid,t.polygonList]),d(()=>{n.current.history={pushHistory:e=>{I({pointCloudBoxList:e})},initRecord:()=>{}}},[]),d(()=>{var e;const o=(e=t.topViewInstance)==null?void 0:e.pointCloud2dOperation;if(!o)return;const l=a=>{C(a)},i=a=>{b.error(a)},u=a=>{b.info(a)};return o.on("syncAttribute",l),o.on("messageError",i),o.on("messageInfo",u),()=>{o.unbind("syncAttribute",l),o.unbind("messageError",i),o.unbind("messageInfo",u)}},[t.topViewInstance]),null};var at=q(F,null,null,{context:J})(it);export{at as default};
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloudListener.js","sources":["../../../src/components/pointCloudView/PointCloudListener.tsx"],"sourcesContent":["import { PointCloudContext } from './PointCloudContext';\nimport { useRotate } from './hooks/useRotate';\nimport { useBoxes } from './hooks/useBoxes';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport React, { useContext, useEffect } from 'react';\nimport { cTool, AttributeUtils } from '@labelbee/lb-annotation';\nimport { message } from 'antd';\nimport { connect } from 'react-redux';\nimport { a2MapStateToProps, IA2MapStateProps } from '@/store/annotation/map';\nimport { useCustomToolInstance } from '@/hooks/annotation';\nimport { useStatus } from './hooks/useStatus';\nimport { jsonParser } from '@/utils';\nimport { usePointCloudViews } from './hooks/usePointCloudViews';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { useHistory } from './hooks/useHistory';\nimport { useAttribute } from './hooks/useAttribute';\n\nconst { EPolygonPattern } = cTool;\n\nconst PointCloudListener: React.FC<IA2MapStateProps> = ({ currentData, config }) => {\n const ptCtx = useContext(PointCloudContext);\n const { changeSelectedBoxValid, selectNextBox, selectPrevBox, updateSelectedBox } =\n useSingleBox();\n const { clearAllResult } = useStatus();\n const basicInfo = jsonParser(currentData.result);\n const { copySelectedBoxes, pasteSelectedBoxes, copiedBoxes } = useBoxes();\n const { toolInstanceRef } = useCustomToolInstance({ basicInfo });\n const { updateRotate } = useRotate({ currentData });\n const { updatePointCloudData } = usePointCloudViews();\n const { redo, undo, pushHistoryWithList } = useHistory();\n const { syncThreeViewsAttribute, reRenderPointCloud3DBox } = useAttribute();\n\n const keydownEvents = (lowerCaseKey: string, e: KeyboardEvent) => {\n const { topViewInstance, mainViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n\n const { pointCloud2dOperation: TopPointCloudPolygonOperation } = topViewInstance;\n\n switch (lowerCaseKey) {\n case 'q': {\n // Q - anticlockwise\n updateRotate(2);\n break;\n }\n\n case 'e':\n // E - closewise\n updateRotate(-2);\n\n break;\n\n case 'g':\n // G , overturn 180\n updateRotate(180);\n\n break;\n\n case 'u':\n {\n // U , change TopOpereation Pattern\n const newPattern =\n TopPointCloudPolygonOperation.pattern === EPolygonPattern.Normal\n ? EPolygonPattern.Rect\n : EPolygonPattern.Normal;\n TopPointCloudPolygonOperation.setPattern(newPattern);\n const POLYGON_PATTERN = {\n [EPolygonPattern.Normal]: 'Normal Pattern',\n [EPolygonPattern.Rect]: 'Rect Pattern',\n };\n message.success(`Change Pattern to ${POLYGON_PATTERN[newPattern]} successfully`);\n\n // Clear Status\n TopPointCloudPolygonOperation.clearActiveStatus();\n TopPointCloudPolygonOperation.clearDrawingStatus();\n }\n\n break;\n\n // +: Increase points size\n case '+':\n mainViewInstance?.updatePointSize(true);\n break;\n\n // -: Reduce points size\n case '-':\n mainViewInstance?.updatePointSize(false);\n break;\n\n case 'v':\n ptCtx.setPointCloudValid(!ptCtx.valid);\n break;\n\n case 'tab':\n if (e.shiftKey) {\n selectPrevBox();\n break;\n }\n selectNextBox();\n break;\n\n case 'f':\n changeSelectedBoxValid();\n break;\n\n default: {\n if (config.attributeList?.length > 0) {\n const keyCode2Attribute = AttributeUtils.getAttributeByKeycode(\n e.keyCode,\n config.attributeList,\n );\n\n if (keyCode2Attribute !== undefined) {\n toolInstanceRef.current.setDefaultAttribute(keyCode2Attribute);\n }\n }\n return;\n }\n }\n };\n\n const ctrlKeydownEvents = (lowerCaseKey: string, e: KeyboardEvent) => {\n switch (lowerCaseKey) {\n case 'c':\n copySelectedBoxes();\n break;\n case 'v':\n pasteSelectedBoxes();\n break;\n case 'a':\n ptCtx.selectedAllBoxes();\n break;\n case 'z': {\n if (e.shiftKey) {\n redo();\n } else {\n undo();\n }\n break;\n }\n\n default:\n break;\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const lowerCaseKey = e.key.toLocaleLowerCase();\n\n if (e.ctrlKey) {\n ctrlKeydownEvents(lowerCaseKey, e);\n return;\n }\n\n keydownEvents(lowerCaseKey, e);\n };\n\n useEffect(() => {\n const { topViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n\n window.addEventListener('keydown', onKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [ptCtx, copiedBoxes, config]);\n\n // Page switch data initialization\n useEffect(() => {\n updatePointCloudData?.();\n }, [currentData, ptCtx.mainViewInstance]);\n\n // Update the listener of toolInstance.\n useEffect(() => {\n toolInstanceRef.current.exportData = () => {\n return [ptCtx.pointCloudBoxList, { valid: ptCtx.valid }];\n };\n\n toolInstanceRef.current.exportCustomData = () => {\n return {\n renderPolygon: ptCtx.polygonList ?? [],\n };\n };\n\n toolInstanceRef.current.setDefaultAttribute = (newAttribute: string) => {\n syncThreeViewsAttribute(newAttribute);\n const selectBox = ptCtx.selectedPointCloudBox;\n if (selectBox) {\n selectBox.attribute = newAttribute;\n\n updateSelectedBox(selectBox);\n reRenderPointCloud3DBox(selectBox);\n }\n };\n\n toolInstanceRef.current.setSubAttribute = (key: string, value: string) => {\n const selectBox = ptCtx.selectedPointCloudBox;\n if (selectBox) {\n const originSubAttribute = selectBox?.subAttribute ?? {};\n\n selectBox.subAttribute = {\n ...originSubAttribute,\n [key]: value,\n };\n\n updateSelectedBox(selectBox);\n }\n };\n toolInstanceRef.current.clearResult = () => {\n clearAllResult?.();\n };\n\n toolInstanceRef.current.redo = () => {\n redo();\n };\n\n toolInstanceRef.current.undo = () => {\n undo();\n };\n\n toolInstanceRef.current.setValid = (valid: boolean) => {\n toolInstanceRef.current.valid = valid;\n\n // Avoid triggering SetState operations in the reducer phase\n setTimeout(() => {\n ptCtx.setPointCloudValid(valid);\n\n if (valid === false) {\n clearAllResult();\n }\n });\n };\n }, [ptCtx.pointCloudBoxList, ptCtx.selectedID, ptCtx.valid, ptCtx.polygonList]);\n\n useEffect(() => {\n toolInstanceRef.current.history = {\n // Origin Result\n pushHistory: (result: any[]) => {\n // Rewrite\n // TODO, The polygon is out of range.\n pushHistoryWithList({ pointCloudBoxList: result });\n },\n initRecord: () => {},\n };\n }, []);\n\n useEffect(() => {\n const toolInstance = ptCtx.topViewInstance?.pointCloud2dOperation;\n\n if (!toolInstance) {\n return;\n }\n // TopViewOperation Emitter\n const syncAttribute = (newAttribute: string) => {\n syncThreeViewsAttribute(newAttribute);\n };\n\n const messageError = (error: string) => {\n message.error(error);\n };\n const messageInfo = (info: string) => {\n message.info(info);\n };\n\n toolInstance.on('syncAttribute', syncAttribute);\n toolInstance.on('messageError', messageError);\n toolInstance.on('messageInfo', messageInfo);\n\n return () => {\n toolInstance.unbind('syncAttribute', syncAttribute);\n toolInstance.unbind('messageError', messageError);\n toolInstance.unbind('messageInfo', messageInfo);\n };\n }, [ptCtx.topViewInstance]);\n\n return null;\n};\n\nexport default connect(a2MapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloudListener,\n);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PointCloudListener.js","sources":["../../../src/components/pointCloudView/PointCloudListener.tsx"],"sourcesContent":["import { PointCloudContext } from './PointCloudContext';\nimport { useRotate } from './hooks/useRotate';\nimport { useBoxes } from './hooks/useBoxes';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport React, { useContext, useEffect } from 'react';\nimport { cTool, AttributeUtils, CommonToolUtils } from '@labelbee/lb-annotation';\nimport { message } from 'antd';\nimport { connect } from 'react-redux';\nimport { a2MapStateToProps, IA2MapStateProps } from '@/store/annotation/map';\nimport { useCustomToolInstance } from '@/hooks/annotation';\nimport { useStatus } from './hooks/useStatus';\nimport { jsonParser } from '@/utils';\nimport { usePointCloudViews } from './hooks/usePointCloudViews';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { useHistory } from './hooks/useHistory';\nimport { useAttribute } from './hooks/useAttribute';\n\nconst { EPolygonPattern } = cTool;\n\nconst PointCloudListener: React.FC<IA2MapStateProps> = ({ currentData, config }) => {\n const ptCtx = useContext(PointCloudContext);\n const { changeSelectedBoxValid, selectNextBox, selectPrevBox, updateSelectedBox } =\n useSingleBox();\n const { clearAllResult } = useStatus();\n const basicInfo = jsonParser(currentData.result);\n const { copySelectedBoxes, pasteSelectedBoxes, copiedBoxes } = useBoxes();\n const { toolInstanceRef } = useCustomToolInstance({ basicInfo });\n const { updateRotate } = useRotate({ currentData });\n const { updatePointCloudData } = usePointCloudViews();\n const { redo, undo, pushHistoryWithList } = useHistory();\n const { syncThreeViewsAttribute, reRenderPointCloud3DBox } = useAttribute();\n\n const keydownEvents = (lowerCaseKey: string, e: KeyboardEvent) => {\n const { topViewInstance, mainViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n\n const { pointCloud2dOperation: TopPointCloudPolygonOperation } = topViewInstance;\n\n switch (lowerCaseKey) {\n case 'q': {\n // Q - anticlockwise\n updateRotate(2);\n break;\n }\n\n case 'e':\n // E - closewise\n updateRotate(-2);\n\n break;\n\n case 'g':\n // G , overturn 180\n updateRotate(180);\n\n break;\n\n case 'u':\n {\n // U , change TopOpereation Pattern\n const newPattern =\n TopPointCloudPolygonOperation.pattern === EPolygonPattern.Normal\n ? EPolygonPattern.Rect\n : EPolygonPattern.Normal;\n TopPointCloudPolygonOperation.setPattern(newPattern);\n const POLYGON_PATTERN = {\n [EPolygonPattern.Normal]: 'Normal Pattern',\n [EPolygonPattern.Rect]: 'Rect Pattern',\n };\n message.success(`Change Pattern to ${POLYGON_PATTERN[newPattern]} successfully`);\n\n // Clear Status\n TopPointCloudPolygonOperation.clearActiveStatus();\n TopPointCloudPolygonOperation.clearDrawingStatus();\n }\n\n break;\n\n // +: Increase points size\n case '+':\n mainViewInstance?.updatePointSize(true);\n break;\n\n // -: Reduce points size\n case '-':\n mainViewInstance?.updatePointSize(false);\n break;\n\n case 'v':\n ptCtx.setPointCloudValid(!ptCtx.valid);\n break;\n\n case 'tab':\n if (e.shiftKey) {\n selectPrevBox();\n break;\n }\n selectNextBox();\n break;\n\n case 'f':\n changeSelectedBoxValid();\n break;\n\n default: {\n if (config.attributeList?.length > 0) {\n const keyCode2Attribute = AttributeUtils.getAttributeByKeycode(\n e.keyCode,\n config.attributeList,\n );\n\n if (keyCode2Attribute !== undefined) {\n toolInstanceRef.current.setDefaultAttribute(keyCode2Attribute);\n }\n }\n return;\n }\n }\n };\n\n const ctrlKeydownEvents = (lowerCaseKey: string, e: KeyboardEvent) => {\n switch (lowerCaseKey) {\n case 'c':\n copySelectedBoxes();\n break;\n case 'v':\n pasteSelectedBoxes();\n break;\n case 'a':\n ptCtx.selectedAllBoxes();\n break;\n case 'z': {\n if (e.shiftKey) {\n redo();\n } else {\n undo();\n }\n break;\n }\n\n default:\n break;\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (!CommonToolUtils.hotkeyFilter(e)) {\n return;\n }\n\n const lowerCaseKey = e.key.toLocaleLowerCase();\n\n if (e.ctrlKey) {\n ctrlKeydownEvents(lowerCaseKey, e);\n return;\n }\n\n keydownEvents(lowerCaseKey, e);\n };\n\n useEffect(() => {\n const { topViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n\n window.addEventListener('keydown', onKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [ptCtx, copiedBoxes, config]);\n\n // Page switch data initialization\n useEffect(() => {\n updatePointCloudData?.();\n }, [currentData, ptCtx.mainViewInstance]);\n\n // Update the listener of toolInstance.\n useEffect(() => {\n toolInstanceRef.current.exportData = () => {\n return [ptCtx.pointCloudBoxList, { valid: ptCtx.valid }];\n };\n\n toolInstanceRef.current.exportCustomData = () => {\n return {\n renderPolygon: ptCtx.polygonList ?? [],\n };\n };\n\n toolInstanceRef.current.setDefaultAttribute = (newAttribute: string) => {\n syncThreeViewsAttribute(newAttribute);\n const selectBox = ptCtx.selectedPointCloudBox;\n if (selectBox) {\n selectBox.attribute = newAttribute;\n\n updateSelectedBox(selectBox);\n reRenderPointCloud3DBox(selectBox);\n }\n };\n\n toolInstanceRef.current.setSubAttribute = (key: string, value: string) => {\n const selectBox = ptCtx.selectedPointCloudBox;\n if (selectBox) {\n const originSubAttribute = selectBox?.subAttribute ?? {};\n\n selectBox.subAttribute = {\n ...originSubAttribute,\n [key]: value,\n };\n\n updateSelectedBox(selectBox);\n }\n };\n toolInstanceRef.current.clearResult = () => {\n clearAllResult?.();\n };\n\n toolInstanceRef.current.redo = () => {\n redo();\n };\n\n toolInstanceRef.current.undo = () => {\n undo();\n };\n\n toolInstanceRef.current.setValid = (valid: boolean) => {\n toolInstanceRef.current.valid = valid;\n\n // Avoid triggering SetState operations in the reducer phase\n setTimeout(() => {\n ptCtx.setPointCloudValid(valid);\n\n if (valid === false) {\n clearAllResult();\n }\n });\n };\n }, [ptCtx.pointCloudBoxList, ptCtx.selectedID, ptCtx.valid, ptCtx.polygonList]);\n\n useEffect(() => {\n toolInstanceRef.current.history = {\n // Origin Result\n pushHistory: (result: any[]) => {\n // Rewrite\n // TODO, The polygon is out of range.\n pushHistoryWithList({ pointCloudBoxList: result });\n },\n initRecord: () => {},\n };\n }, []);\n\n useEffect(() => {\n const toolInstance = ptCtx.topViewInstance?.pointCloud2dOperation;\n\n if (!toolInstance) {\n return;\n }\n // TopViewOperation Emitter\n const syncAttribute = (newAttribute: string) => {\n syncThreeViewsAttribute(newAttribute);\n };\n\n const messageError = (error: string) => {\n message.error(error);\n };\n const messageInfo = (info: string) => {\n message.info(info);\n };\n\n toolInstance.on('syncAttribute', syncAttribute);\n toolInstance.on('messageError', messageError);\n toolInstance.on('messageInfo', messageInfo);\n\n return () => {\n toolInstance.unbind('syncAttribute', syncAttribute);\n toolInstance.unbind('messageError', messageError);\n toolInstance.unbind('messageInfo', messageInfo);\n };\n }, [ptCtx.topViewInstance]);\n\n return null;\n};\n\nexport default connect(a2MapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloudListener,\n);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{ESubmitType as U}from"../../../../constant/index.js";import{ToSubmitFileData as T,BatchUpdateResultByTrackID as z}from"../../../../store/annotation/actionCreators.js";import{LabelBeeContext as R,useDispatch as M}from"../../../../store/ctx.js";import{Form as u,Modal as q,InputNumber as F,Select as g,Popover as N,message as V}from"antd";import e,{useState as H,useEffect as K,useCallback as Q}from"react";import{useTranslation as W}from"react-i18next";import{QuestionCircleOutlined as $}from"@ant-design/icons";import{PointCloudUtils as _}from"@labelbee/lb-utils";import{connect as G}from"react-redux";import{useSingleBox as J}from"../../hooks/useSingleBox.js";import{MathUtils as X}from"@labelbee/lb-annotation";var Y=Object.defineProperty,Z=Object.defineProperties,ee=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,w=(r,n,a)=>n in r?Y(r,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[n]=a,b=(r,n)=>{for(var a in n||(n={}))te.call(n,a)&&w(r,a,n[a]);if(B)for(var a of B(n))re.call(n,a)&&w(r,a,n[a]);return r},ne=(r,n)=>Z(r,ee(n));const ae={labelCol:{span:8},wrapperCol:{span:16}},O=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"}],le=[{required:!0,message:"\u8BF7\u9009\u62E9\u4E3B\u5C5E\u6027"}],x=2,k=({text:r})=>e.createElement("span",{style:{borderRadius:"4px 0px 0px 4px",padding:"0px 12px",background:"#FAFAFA",border:"1px solid rgb(217 217 217)",borderRight:"0",display:"flex",alignItems:"center",height:32}},r),ie=({id:r,visible:n,onCancel:a,config:m,imgList:v,imgIndex:C})=>{const h=M(),{selectedBox:i}=J(),[p,E]=H(),[d]=u.useForm(),{t:o}=W();K(()=>{n===!1&&(d.resetFields(),E(void 0))},[n]);const A=t=>{var s;if(!r)return;if(!p){V.info("\u8BE5\u8303\u56F4\u4E0D\u5B58\u5728\u66F4\u6539\u6570\u636E, \u8BF7\u66F4\u6539\u7EDF\u4E00\u8303\u56F4");return}h(T(U.SyncImgList));const l={attribute:t.attribute};if(m.secondaryAttributeConfigurable){const c={};(s=m.inputList)==null||s.forEach(f=>{const y=t[f.value];y!==void 0&&Object.assign(c,{[f.value]:y})}),Object.keys(c).length>0&&Object.assign(l,{subAttribute:c})}p&&Object.assign(l,p),h(z(r,l,[t.prevPage-1,t.nextPage-1])),a()},P=Q(()=>{var t;const{prevPage:s,nextPage:l}=d.getFieldsValue(["prevPage","nextPage"]),c=v.filter((y,L)=>X.isInRange(L,[s-1,l-1]));if(!((c==null?void 0:c.length)>0)||!(i==null?void 0:i.info)||((t=i==null?void 0:i.info)==null?void 0:t.trackID)===void 0){E(void 0);return}const f=_.getMaxSizeFromBox({trackID:i.info.trackID,imgList:c});E(f)},[v,i,C]),D=()=>d.submit(),j=()=>{if(!p||!(i==null?void 0:i.info))return;const t={marginRight:16},{length:s,width:l,height:c}=_.transferBox2Kitti(b(b({},i==null?void 0:i.info),p));return e.createElement("div",null,e.createElement("span",{style:t},o("Length"),": ",s.toFixed(x)),e.createElement("span",{style:t},o("Width"),": ",l.toFixed(x)),e.createElement("span",{style:t},o("Height"),": ",c.toFixed(x)),e.createElement(N,{placement:"rightBottom",content:"\u7EDF\u4E00\u5C3A\u5BF8\u4E3A\u8BE5ID\u7684\u6240\u6709\u6807\u6CE8\u6846\u4E2D\u6700\u5927\u7684\u5C3A\u5BF8"},e.createElement($,null)))},S={width:"200px"},I={marginBottom:"24px",display:"flex",alignItems:"center"};return e.createElement(q,{title:o("UnifyParams"),visible:n,onCancel:a,onOk:D,wrapClassName:"labelbee-custom-modal"},e.createElement(u,ne(b({},ae),{form:d,onFinish:A}),e.createElement(u.Item,{name:"id",label:o("CurrentBoxTrackIDs")},r),e.createElement(u.Item,{label:o("UnifyTrackIDRange"),required:!0},e.createElement(u.Item,{style:{display:"inline-block"},rules:O,name:"prevPage",noStyle:!0},e.createElement(F,{min:1,style:{width:"80px"},onChange:()=>P()})),e.createElement("span",{style:{display:"inline-block",width:"24px",textAlign:"center"}},"-"),e.createElement(u.Item,{style:{display:"inline-block"},rules:O,name:"nextPage",noStyle:!0},e.createElement(F,{min:1,style:{width:"80px"},onChange:()=>P()})),e.createElement("span",{style:{display:"inline-block",width:"40x",marginLeft:"10px",textAlign:"center"}},o("Page"))),e.createElement(u.Item,{name:"UnifySize",label:o("UnifySize")},j()),e.createElement(u.Item,{label:o("UnifyTag"),required:!0},e.createElement("div",{style:I},e.createElement(k,{text:o("Attribute")}),e.createElement(u.Item,{name:"attribute",noStyle:!0,rules:le},e.createElement(g,{style:S},m.attributeList.map(t=>e.createElement(g.Option,{key:t.value,value:t.value},t.key))))),m.secondaryAttributeConfigurable&&m.inputList.map(t=>{var s;return e.createElement("div",{key:t.value,style:I},e.createElement(k,{text:t.key}),e.createElement(u.Item,{name:t.value,noStyle:!0,required:!1},e.createElement(g,{style:S},(s=t.subSelected)==null?void 0:s.map(l=>e.createElement(g.Option,{key:l.value,value:l.value},l.key)))))}))))},oe=r=>({imgList:r.annotation.imgList,imgIndex:r.annotation.imgIndex});var ue=G(oe,null,null,{context:R})(ie);export{ue as default};
1
+ import{ESubmitType as U}from"../../../../constant/index.js";import{ToSubmitFileData as z,BatchUpdateResultByTrackID as R}from"../../../../store/annotation/actionCreators.js";import{LabelBeeContext as T,useDispatch as M}from"../../../../store/ctx.js";import{Form as u,Modal as q,InputNumber as F,Select as g,Popover as N,message as V}from"antd";import e,{useState as H,useEffect as K,useCallback as Q}from"react";import{useTranslation as W}from"react-i18next";import{QuestionCircleOutlined as $}from"@ant-design/icons";import{PointCloudUtils as _}from"@labelbee/lb-utils";import{connect as G}from"react-redux";import{useSingleBox as J}from"../../hooks/useSingleBox.js";import{MathUtils as X}from"@labelbee/lb-annotation";var Y=Object.defineProperty,Z=Object.defineProperties,ee=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,w=(r,n,a)=>n in r?Y(r,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[n]=a,b=(r,n)=>{for(var a in n||(n={}))te.call(n,a)&&w(r,a,n[a]);if(B)for(var a of B(n))re.call(n,a)&&w(r,a,n[a]);return r},ne=(r,n)=>Z(r,ee(n));const ae={labelCol:{span:8},wrapperCol:{span:16}},O=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"}],ie=[{required:!0,message:"\u8BF7\u9009\u62E9\u4E3B\u5C5E\u6027"}],x=2,k=({text:r})=>e.createElement("span",{style:{borderRadius:"4px 0px 0px 4px",padding:"0px 12px",background:"#FAFAFA",border:"1px solid rgb(217 217 217)",borderRight:"0",display:"flex",alignItems:"center",height:32}},r),le=({id:r,visible:n,onCancel:a,config:m,imgList:v,imgIndex:A})=>{const h=M(),{selectedBox:l}=J(),[p,y]=H(),[d]=u.useForm(),{t:o}=W();K(()=>{n===!1&&(d.resetFields(),y(void 0))},[n]);const C=t=>{var s;if(!r)return;if(!p){V.info("\u8BE5\u8303\u56F4\u4E0D\u5B58\u5728\u66F4\u6539\u6570\u636E, \u8BF7\u66F4\u6539\u7EDF\u4E00\u8303\u56F4");return}h(z(U.SyncImgList));const i={attribute:t.attribute};if(m.secondaryAttributeConfigurable){const c={};(s=m.inputList)==null||s.forEach(f=>{const E=t[f.value];E!==void 0&&Object.assign(c,{[f.value]:E})}),Object.keys(c).length>0&&Object.assign(i,{subAttribute:c})}p&&Object.assign(i,p),h(R(r,i,[t.prevPage-1,t.nextPage-1])),a()},P=Q(()=>{var t;const{prevPage:s,nextPage:i}=d.getFieldsValue(["prevPage","nextPage"]),c=v.filter((E,L)=>X.isInRange(L,[s-1,i-1]));if(!((c==null?void 0:c.length)>0)||!(l==null?void 0:l.info)||((t=l==null?void 0:l.info)==null?void 0:t.trackID)===void 0){y(void 0);return}const f=_.getMaxSizeFromBox({trackID:l.info.trackID,imgList:c});y(f)},[v,l,A]),D=()=>d.submit(),j=()=>{if(!p||!(l==null?void 0:l.info))return;const t={marginRight:16},{length:s,width:i,height:c}=_.transferBox2Kitti(b(b({},l==null?void 0:l.info),p));return e.createElement("div",null,e.createElement("span",{style:t},o("Length"),": ",s.toFixed(x)),e.createElement("span",{style:t},o("Width"),": ",i.toFixed(x)),e.createElement("span",{style:t},o("Height"),": ",c.toFixed(x)),e.createElement(N,{placement:"rightBottom",content:"\u7EDF\u4E00\u5C3A\u5BF8\u4E3A\u8BE5ID\u7684\u6240\u6709\u6807\u6CE8\u6846\u4E2D\u6700\u5927\u7684\u5C3A\u5BF8"},e.createElement($,null)))},S={width:"200px"},I={marginBottom:"24px",display:"flex",alignItems:"center"};return e.createElement(q,{title:o("UnifyParams"),visible:n,onCancel:a,onOk:D,wrapClassName:"labelbee-custom-modal"},e.createElement(u,ne(b({},ae),{form:d,onFinish:C}),e.createElement(u.Item,{name:"id",label:o("UnifyTrackID")},r),e.createElement(u.Item,{label:o("UnifyAttributeRange"),required:!0},e.createElement(u.Item,{style:{display:"inline-block"},rules:O,name:"prevPage",noStyle:!0},e.createElement(F,{precision:0,min:1,style:{width:"80px"},onChange:()=>P()})),e.createElement("span",{style:{display:"inline-block",width:"24px",textAlign:"center"}},"-"),e.createElement(u.Item,{style:{display:"inline-block"},rules:O,name:"nextPage",noStyle:!0},e.createElement(F,{precision:0,min:1,style:{width:"80px"},onChange:()=>P()})),e.createElement("span",{style:{display:"inline-block",width:"40x",marginLeft:"10px",textAlign:"center"}},o("Page"))),e.createElement(u.Item,{name:"UnifySize",label:o("UnifySize")},j()),e.createElement(u.Item,{label:o("UnifyTag"),required:!0},e.createElement("div",{style:I},e.createElement(k,{text:o("Attribute")}),e.createElement(u.Item,{name:"attribute",noStyle:!0,rules:ie},e.createElement(g,{style:S},m.attributeList.map(t=>e.createElement(g.Option,{key:t.value,value:t.value},t.key))))),m.secondaryAttributeConfigurable&&m.inputList.map(t=>{var s;return e.createElement("div",{key:t.value,style:I},e.createElement(k,{text:t.key}),e.createElement(u.Item,{name:t.value,noStyle:!0,required:!1},e.createElement(g,{style:S},(s=t.subSelected)==null?void 0:s.map(i=>e.createElement(g.Option,{key:i.value,value:i.value},i.key)))))}))))},oe=r=>({imgList:r.annotation.imgList,imgIndex:r.annotation.imgIndex});var ue=G(oe,null,null,{context:T})(le);export{ue as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/pointCloudView/components/UnifyParamsModal/index.tsx"],"sourcesContent":["import { ESubmitType } from '@/constant';\nimport { BatchUpdateResultByTrackID, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport { LabelBeeContext, useDispatch } from '@/store/ctx';\nimport { Form, InputNumber, message, Modal, Popover, Select } from 'antd';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { QuestionCircleOutlined } from '@ant-design/icons';\nimport { IPointCloudConfig, PointCloudUtils } from '@labelbee/lb-utils';\nimport { connect } from 'react-redux';\nimport { AppState } from '@/store';\nimport { AnnotationFileList } from '@/types/data';\nimport { useSingleBox } from '../../hooks/useSingleBox';\nimport { MathUtils } from '@labelbee/lb-annotation';\n\ninterface IProps {\n id?: number;\n visible: boolean;\n onCancel: () => void;\n config: IPointCloudConfig;\n imgList: AnnotationFileList;\n imgIndex: number;\n}\n\nconst layout = {\n labelCol: { span: 8 },\n wrapperCol: { span: 16 },\n};\n\nconst defaultNumberRules = [{ required: true, message: '请填写一个数字' }];\nconst defaultSelectedAttribute = [{ required: true, message: '请选择主属性' }];\nconst DECIMAL_PLACES = 2;\n\nconst PrefixTag: React.FC<{ text: string }> = ({ text }) => {\n return (\n <span\n style={{\n borderRadius: '4px 0px 0px 4px',\n padding: '0px 12px',\n background: '#FAFAFA',\n border: '1px solid rgb(217 217 217)',\n borderRight: '0',\n display: 'flex',\n alignItems: 'center',\n height: 32,\n }}\n >\n {text}\n </span>\n );\n};\n\nconst UnifyParamsModal = ({ id, visible, onCancel, config, imgList, imgIndex }: IProps) => {\n const dispatch = useDispatch();\n const { selectedBox } = useSingleBox();\n const [size, setSize] = useState<{ width: number; height: number; depth: number }>();\n\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n useEffect(() => {\n if (visible === false) {\n // Clear All Data\n form.resetFields();\n setSize(undefined);\n }\n }, [visible]);\n\n const onFinish = (values: any) => {\n if (!id) {\n return;\n }\n\n if (!size) {\n message.info('该范围不存在更改数据, 请更改统一范围');\n return;\n }\n\n dispatch(ToSubmitFileData(ESubmitType.SyncImgList));\n const newData = {\n attribute: values.attribute,\n };\n\n if (config.secondaryAttributeConfigurable) {\n const newSubAttribute = {};\n config.inputList?.forEach((data) => {\n const subData = values[data.value];\n if (subData !== undefined) {\n Object.assign(newSubAttribute, { [data.value]: subData });\n }\n });\n\n if (Object.keys(newSubAttribute).length > 0) {\n Object.assign(newData, { subAttribute: newSubAttribute });\n }\n }\n\n if (size) {\n Object.assign(newData, size);\n }\n\n dispatch(BatchUpdateResultByTrackID(id, newData, [values.prevPage - 1, values.nextPage - 1]));\n onCancel();\n };\n\n const recalculateSize = useCallback(() => {\n const { prevPage, nextPage } = form.getFieldsValue(['prevPage', 'nextPage']);\n\n // 1. Filter the imgInfo in range.\n const newImgList = imgList.filter((_, i) =>\n MathUtils.isInRange(i, [prevPage - 1, nextPage - 1]),\n );\n\n if (\n !(newImgList?.length > 0) ||\n !selectedBox?.info ||\n selectedBox?.info?.trackID === undefined\n ) {\n setSize(undefined);\n return;\n }\n\n // 2. Get the Max Size of imgList\n const newMaxSize = PointCloudUtils.getMaxSizeFromBox({\n trackID: selectedBox.info.trackID,\n imgList: newImgList as Array<{ result: string }>,\n });\n\n setSize(newMaxSize);\n }, [imgList, selectedBox, imgIndex]);\n\n const onOk = () => form.submit();\n\n const sizeShow = () => {\n if (!size || !selectedBox?.info) {\n return;\n }\n const style = { marginRight: 16 };\n\n const { length, width, height } = PointCloudUtils.transferBox2Kitti({\n ...selectedBox?.info, // Just for the type check\n ...size,\n });\n\n return (\n <div>\n <span style={style}>\n {t('Length')}: {length.toFixed(DECIMAL_PLACES)}\n </span>\n <span style={style}>\n {t('Width')}: {width.toFixed(DECIMAL_PLACES)}\n </span>\n <span style={style}>\n {t('Height')}: {height.toFixed(DECIMAL_PLACES)}\n </span>\n <Popover placement='rightBottom' content='统一尺寸为该ID的所有标注框中最大的尺寸'>\n <QuestionCircleOutlined />\n </Popover>\n </div>\n );\n };\n const selectStyle = {\n width: '200px',\n };\n\n const attributeStyle = {\n marginBottom: '24px',\n display: 'flex',\n alignItems: 'center',\n };\n\n return (\n <Modal\n title={t('UnifyParams')}\n visible={visible}\n onCancel={onCancel}\n onOk={onOk}\n wrapClassName='labelbee-custom-modal'\n >\n <Form {...layout} form={form} onFinish={onFinish}>\n <Form.Item name='id' label={t('CurrentBoxTrackIDs')}>\n {id}\n </Form.Item>\n\n <Form.Item label={t('UnifyTrackIDRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='prevPage'\n noStyle={true}\n >\n <InputNumber min={1} style={{ width: '80px' }} onChange={() => recalculateSize()} />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n textAlign: 'center',\n }}\n >\n -\n </span>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='nextPage'\n noStyle={true}\n >\n <InputNumber min={1} style={{ width: '80px' }} onChange={() => recalculateSize()} />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '40x',\n marginLeft: '10px',\n textAlign: 'center',\n }}\n >\n {t('Page')}\n </span>\n </Form.Item>\n\n <Form.Item name='UnifySize' label={t('UnifySize')}>\n {sizeShow()}\n </Form.Item>\n\n <Form.Item label={t('UnifyTag')} required={true}>\n <div style={attributeStyle}>\n <PrefixTag text={t('Attribute')} />\n <Form.Item name='attribute' noStyle={true} rules={defaultSelectedAttribute}>\n <Select style={selectStyle}>\n {config.attributeList.map((v) => (\n <Select.Option key={v.value} value={v.value}>\n {v.key}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n </div>\n {config.secondaryAttributeConfigurable &&\n config.inputList.map((v) => (\n <div key={v.value} style={attributeStyle}>\n <PrefixTag text={v.key} />\n <Form.Item name={v.value} noStyle={true} required={false}>\n <Select style={selectStyle}>\n {v.subSelected?.map((subData) => (\n <Select.Option key={subData.value} value={subData.value}>\n {subData.key}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n </div>\n ))}\n </Form.Item>\n </Form>\n </Modal>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(UnifyParamsModal);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/pointCloudView/components/UnifyParamsModal/index.tsx"],"sourcesContent":["import { ESubmitType } from '@/constant';\nimport { BatchUpdateResultByTrackID, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport { LabelBeeContext, useDispatch } from '@/store/ctx';\nimport { Form, InputNumber, message, Modal, Popover, Select } from 'antd';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { QuestionCircleOutlined } from '@ant-design/icons';\nimport { IPointCloudConfig, PointCloudUtils } from '@labelbee/lb-utils';\nimport { connect } from 'react-redux';\nimport { AppState } from '@/store';\nimport { AnnotationFileList } from '@/types/data';\nimport { useSingleBox } from '../../hooks/useSingleBox';\nimport { MathUtils } from '@labelbee/lb-annotation';\n\ninterface IProps {\n id?: number;\n visible: boolean;\n onCancel: () => void;\n config: IPointCloudConfig;\n imgList: AnnotationFileList;\n imgIndex: number;\n}\n\nconst layout = {\n labelCol: { span: 8 },\n wrapperCol: { span: 16 },\n};\n\nconst defaultNumberRules = [{ required: true, message: '请填写一个数字' }];\nconst defaultSelectedAttribute = [{ required: true, message: '请选择主属性' }];\nconst DECIMAL_PLACES = 2;\n\nconst PrefixTag: React.FC<{ text: string }> = ({ text }) => {\n return (\n <span\n style={{\n borderRadius: '4px 0px 0px 4px',\n padding: '0px 12px',\n background: '#FAFAFA',\n border: '1px solid rgb(217 217 217)',\n borderRight: '0',\n display: 'flex',\n alignItems: 'center',\n height: 32,\n }}\n >\n {text}\n </span>\n );\n};\n\nconst UnifyParamsModal = ({ id, visible, onCancel, config, imgList, imgIndex }: IProps) => {\n const dispatch = useDispatch();\n const { selectedBox } = useSingleBox();\n const [size, setSize] = useState<{ width: number; height: number; depth: number }>();\n\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n useEffect(() => {\n if (visible === false) {\n // Clear All Data\n form.resetFields();\n setSize(undefined);\n }\n }, [visible]);\n\n const onFinish = (values: any) => {\n if (!id) {\n return;\n }\n\n if (!size) {\n message.info('该范围不存在更改数据, 请更改统一范围');\n return;\n }\n\n dispatch(ToSubmitFileData(ESubmitType.SyncImgList));\n const newData = {\n attribute: values.attribute,\n };\n\n if (config.secondaryAttributeConfigurable) {\n const newSubAttribute = {};\n config.inputList?.forEach((data) => {\n const subData = values[data.value];\n if (subData !== undefined) {\n Object.assign(newSubAttribute, { [data.value]: subData });\n }\n });\n\n if (Object.keys(newSubAttribute).length > 0) {\n Object.assign(newData, { subAttribute: newSubAttribute });\n }\n }\n\n if (size) {\n Object.assign(newData, size);\n }\n\n dispatch(BatchUpdateResultByTrackID(id, newData, [values.prevPage - 1, values.nextPage - 1]));\n onCancel();\n };\n\n const recalculateSize = useCallback(() => {\n const { prevPage, nextPage } = form.getFieldsValue(['prevPage', 'nextPage']);\n\n // 1. Filter the imgInfo in range.\n const newImgList = imgList.filter((_, i) =>\n MathUtils.isInRange(i, [prevPage - 1, nextPage - 1]),\n );\n\n if (\n !(newImgList?.length > 0) ||\n !selectedBox?.info ||\n selectedBox?.info?.trackID === undefined\n ) {\n setSize(undefined);\n return;\n }\n\n // 2. Get the Max Size of imgList\n const newMaxSize = PointCloudUtils.getMaxSizeFromBox({\n trackID: selectedBox.info.trackID,\n imgList: newImgList as Array<{ result: string }>,\n });\n\n setSize(newMaxSize);\n }, [imgList, selectedBox, imgIndex]);\n\n const onOk = () => form.submit();\n\n const sizeShow = () => {\n if (!size || !selectedBox?.info) {\n return;\n }\n const style = { marginRight: 16 };\n\n const { length, width, height } = PointCloudUtils.transferBox2Kitti({\n ...selectedBox?.info, // Just for the type check\n ...size,\n });\n\n return (\n <div>\n <span style={style}>\n {t('Length')}: {length.toFixed(DECIMAL_PLACES)}\n </span>\n <span style={style}>\n {t('Width')}: {width.toFixed(DECIMAL_PLACES)}\n </span>\n <span style={style}>\n {t('Height')}: {height.toFixed(DECIMAL_PLACES)}\n </span>\n <Popover placement='rightBottom' content='统一尺寸为该ID的所有标注框中最大的尺寸'>\n <QuestionCircleOutlined />\n </Popover>\n </div>\n );\n };\n const selectStyle = {\n width: '200px',\n };\n\n const attributeStyle = {\n marginBottom: '24px',\n display: 'flex',\n alignItems: 'center',\n };\n\n return (\n <Modal\n title={t('UnifyParams')}\n visible={visible}\n onCancel={onCancel}\n onOk={onOk}\n wrapClassName='labelbee-custom-modal'\n >\n <Form {...layout} form={form} onFinish={onFinish}>\n <Form.Item name='id' label={t('UnifyTrackID')}>\n {id}\n </Form.Item>\n\n <Form.Item label={t('UnifyAttributeRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='prevPage'\n noStyle={true}\n >\n <InputNumber\n precision={0}\n min={1}\n style={{ width: '80px' }}\n onChange={() => recalculateSize()}\n />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n textAlign: 'center',\n }}\n >\n -\n </span>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='nextPage'\n noStyle={true}\n >\n <InputNumber\n precision={0}\n min={1}\n style={{ width: '80px' }}\n onChange={() => recalculateSize()}\n />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '40x',\n marginLeft: '10px',\n textAlign: 'center',\n }}\n >\n {t('Page')}\n </span>\n </Form.Item>\n\n <Form.Item name='UnifySize' label={t('UnifySize')}>\n {sizeShow()}\n </Form.Item>\n\n <Form.Item label={t('UnifyTag')} required={true}>\n <div style={attributeStyle}>\n <PrefixTag text={t('Attribute')} />\n <Form.Item name='attribute' noStyle={true} rules={defaultSelectedAttribute}>\n <Select style={selectStyle}>\n {config.attributeList.map((v) => (\n <Select.Option key={v.value} value={v.value}>\n {v.key}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n </div>\n {config.secondaryAttributeConfigurable &&\n config.inputList.map((v) => (\n <div key={v.value} style={attributeStyle}>\n <PrefixTag text={v.key} />\n <Form.Item name={v.value} noStyle={true} required={false}>\n <Select style={selectStyle}>\n {v.subSelected?.map((subData) => (\n <Select.Option key={subData.value} value={subData.value}>\n {subData.key}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n </div>\n ))}\n </Form.Item>\n </Form>\n </Modal>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(UnifyParamsModal);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,MAAS,GAAA;AAAA,EACb,QAAA,EAAU,CAAE,IAAM,EAAA,CAAA,CAAA;AAAA,EAClB,UAAA,EAAY,CAAE,IAAM,EAAA,EAAA,CAAA;AAAA,CAAA,CAAA;AAGtB,MAAM,kBAAqB,GAAA,CAAC,CAAE,QAAA,EAAU,MAAM,OAAS,EAAA,4CAAA,CAAA,CAAA,CAAA;AACvD,MAAM,wBAA2B,GAAA,CAAC,CAAE,QAAA,EAAU,MAAM,OAAS,EAAA,sCAAA,CAAA,CAAA,CAAA;AAC7D,MAAM,cAAiB,GAAA,CAAA,CAAA;AAEvB,MAAM,SAAA,GAAwC,CAAC,CAAE,IAAW,CAAA,KAAA;AAC1D,EAAA,2CACG,MAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,YAAc,EAAA,iBAAA;AAAA,MACd,OAAS,EAAA,UAAA;AAAA,MACT,UAAY,EAAA,SAAA;AAAA,MACZ,MAAQ,EAAA,4BAAA;AAAA,MACR,WAAa,EAAA,GAAA;AAAA,MACb,OAAS,EAAA,MAAA;AAAA,MACT,UAAY,EAAA,QAAA;AAAA,MACZ,MAAQ,EAAA,EAAA;AAAA,KAAA;AAAA,GAGT,EAAA,IAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAKP,MAAM,gBAAA,GAAmB,CAAC,CAAE,EAAA,EAAI,SAAS,QAAU,EAAA,MAAA,EAAQ,SAAS,QAAuB,CAAA,KAAA;AACzF,EAAA,MAAM,QAAW,GAAA,WAAA,EAAA,CAAA;AACjB,EAAA,MAAM,CAAE,WAAgB,CAAA,GAAA,YAAA,EAAA,CAAA;AACxB,EAAM,MAAA,CAAC,MAAM,OAAW,CAAA,GAAA,QAAA,EAAA,CAAA;AAExB,EAAM,MAAA,CAAC,QAAQ,IAAK,CAAA,OAAA,EAAA,CAAA;AACpB,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAY,KAAO,EAAA;AAErB,MAAK,IAAA,CAAA,WAAA,EAAA,CAAA;AACL,MAAQ,OAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EAET,CAAC,OAAA,CAAA,CAAA,CAAA;AAEJ,EAAM,MAAA,QAAA,GAAW,CAAC,MAAgB,KAAA;AAnEpC,IAAA,IAAA,EAAA,CAAA;AAoEI,IAAA,IAAI,CAAC,EAAI,EAAA;AACP,MAAA,OAAA;AAAA,KAAA;AAGF,IAAA,IAAI,CAAC,IAAM,EAAA;AACT,MAAA,OAAA,CAAQ,IAAK,CAAA,0GAAA,CAAA,CAAA;AACb,MAAA,OAAA;AAAA,KAAA;AAGF,IAAA,QAAA,CAAS,iBAAiB,WAAY,CAAA,WAAA,CAAA,CAAA,CAAA;AACtC,IAAA,MAAM,OAAU,GAAA;AAAA,MACd,WAAW,MAAO,CAAA,SAAA;AAAA,KAAA,CAAA;AAGpB,IAAA,IAAI,OAAO,8BAAgC,EAAA;AACzC,MAAA,MAAM,eAAkB,GAAA,EAAA,CAAA;AACxB,MAAA,CAAA,EAAA,GAAA,MAAA,CAAO,SAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,OAAQ,CAAA,CAAC,IAAS,KAAA;AAClC,QAAM,MAAA,OAAA,GAAU,OAAO,IAAK,CAAA,KAAA,CAAA,CAAA;AAC5B,QAAA,IAAI,YAAY,KAAW,CAAA,EAAA;AACzB,UAAA,MAAA,CAAO,MAAO,CAAA,eAAA,EAAiB,CAAG,CAAA,IAAA,CAAK,KAAQ,GAAA,OAAA,CAAA,CAAA,CAAA;AAAA,SAAA;AAAA,OAAA,CAAA,CAAA;AAInD,MAAA,IAAI,MAAO,CAAA,IAAA,CAAK,eAAiB,CAAA,CAAA,MAAA,GAAS,CAAG,EAAA;AAC3C,QAAO,MAAA,CAAA,MAAA,CAAO,OAAS,EAAA,CAAE,YAAc,EAAA,eAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAI3C,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,MAAA,CAAO,OAAO,OAAS,EAAA,IAAA,CAAA,CAAA;AAAA,KAAA;AAGzB,IAAS,QAAA,CAAA,0BAAA,CAA2B,IAAI,OAAS,EAAA,CAAC,OAAO,QAAW,GAAA,CAAA,EAAG,OAAO,QAAW,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACzF,IAAA,QAAA,EAAA,CAAA;AAAA,GAAA,CAAA;AAGF,EAAM,MAAA,eAAA,GAAkB,YAAY,MAAM;AAxG5C,IAAA,IAAA,EAAA,CAAA;AAyGI,IAAA,MAAM,CAAE,QAAU,EAAA,QAAA,CAAA,GAAa,IAAK,CAAA,cAAA,CAAe,CAAC,UAAY,EAAA,UAAA,CAAA,CAAA,CAAA;AAGhE,IAAA,MAAM,UAAa,GAAA,OAAA,CAAQ,MAAO,CAAA,CAAC,CAAG,EAAA,CAAA,KACpC,SAAU,CAAA,SAAA,CAAU,CAAG,EAAA,CAAC,QAAW,GAAA,CAAA,EAAG,QAAW,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAGnD,IACE,IAAA,EAAc,CAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAA,MAAA,IAAS,CACvB,CAAA,IAAA,EAAc,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,IAAA,CAAA,IACd,CAAa,CAAA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,IAAA,KAAb,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,MAAY,KAC/B,CAAA,EAAA;AACA,MAAQ,OAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACR,MAAA,OAAA;AAAA,KAAA;AAIF,IAAM,MAAA,UAAA,GAAa,gBAAgB,iBAAkB,CAAA;AAAA,MACnD,OAAA,EAAS,YAAY,IAAK,CAAA,OAAA;AAAA,MAC1B,OAAS,EAAA,UAAA;AAAA,KAAA,CAAA,CAAA;AAGX,IAAQ,OAAA,CAAA,UAAA,CAAA,CAAA;AAAA,GACP,EAAA,CAAC,SAAS,WAAa,EAAA,QAAA,CAAA,CAAA,CAAA;AAE1B,EAAM,MAAA,IAAA,GAAO,MAAM,IAAK,CAAA,MAAA,EAAA,CAAA;AAExB,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,IAAI,CAAC,IAAA,IAAQ,EAAC,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,IAAM,CAAA,EAAA;AAC/B,MAAA,OAAA;AAAA,KAAA;AAEF,IAAM,MAAA,KAAA,GAAQ,CAAE,WAAa,EAAA,EAAA,CAAA,CAAA;AAE7B,IAAM,MAAA,CAAE,QAAQ,KAAO,EAAA,MAAA,CAAA,GAAW,gBAAgB,iBAAkB,CAAA,cAAA,CAAA,cAAA,CAAA,EAAA,EAC/D,2CAAa,IACb,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAGL,IAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAD,IACE,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAA,MAAM,KAAA;AAAA,KAAA,EACH,EAAE,QAAU,CAAA,EAAA,IAAA,EAAG,OAAO,OAAQ,CAAA,cAAA,CAAA,CAAA,sCAEhC,MAAD,EAAA;AAAA,MAAM,KAAA;AAAA,KAAA,EACH,EAAE,OAAS,CAAA,EAAA,IAAA,EAAG,MAAM,OAAQ,CAAA,cAAA,CAAA,CAAA,sCAE9B,MAAD,EAAA;AAAA,MAAM,KAAA;AAAA,KAAA,EACH,EAAE,QAAU,CAAA,EAAA,IAAA,EAAG,OAAO,OAAQ,CAAA,cAAA,CAAA,CAAA,sCAEhC,OAAD,EAAA;AAAA,MAAS,SAAU,EAAA,aAAA;AAAA,MAAc,OAAQ,EAAA,gHAAA;AAAA,KAAA,sCACtC,sBAAD,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAKR,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB,KAAO,EAAA,OAAA;AAAA,GAAA,CAAA;AAGT,EAAA,MAAM,cAAiB,GAAA;AAAA,IACrB,YAAc,EAAA,MAAA;AAAA,IACd,OAAS,EAAA,MAAA;AAAA,IACT,UAAY,EAAA,QAAA;AAAA,GAAA,CAAA;AAGd,EAAA,2CACG,KAAD,EAAA;AAAA,IACE,OAAO,CAAE,CAAA,aAAA,CAAA;AAAA,IACT,OAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,aAAc,EAAA,uBAAA;AAAA,GAEd,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAD,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAU,MAAV,CAAA,EAAA;AAAA,IAAkB,IAAA;AAAA,IAAY,QAAA;AAAA,GAC5B,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAK,IAAN,EAAA;AAAA,IAAW,IAAK,EAAA,IAAA;AAAA,IAAK,OAAO,CAAE,CAAA,cAAA,CAAA;AAAA,GAC3B,EAAA,EAAA,CAAA,kBAGF,KAAA,CAAA,aAAA,CAAA,IAAA,CAAK,IAAN,EAAA;AAAA,IAAW,OAAO,CAAE,CAAA,qBAAA,CAAA;AAAA,IAAwB,QAAU,EAAA,IAAA;AAAA,GACpD,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAK,IAAN,EAAA;AAAA,IACE,KAAA,EAAO,CAAE,OAAS,EAAA,cAAA,CAAA;AAAA,IAClB,KAAO,EAAA,kBAAA;AAAA,IACP,IAAK,EAAA,UAAA;AAAA,IACL,OAAS,EAAA,IAAA;AAAA,GAAA,sCAER,WAAD,EAAA;AAAA,IACE,SAAW,EAAA,CAAA;AAAA,IACX,GAAK,EAAA,CAAA;AAAA,IACL,KAAA,EAAO,CAAE,KAAO,EAAA,MAAA,CAAA;AAAA,IAChB,UAAU,MAAM,eAAA,EAAA;AAAA,GAAA,CAAA,CAAA,sCAGnB,MAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,OAAS,EAAA,cAAA;AAAA,MACT,KAAO,EAAA,MAAA;AAAA,MACP,SAAW,EAAA,QAAA;AAAA,KAAA;AAAA,GAEd,EAAA,GAAA,CAAA,kBAGA,KAAA,CAAA,aAAA,CAAA,IAAA,CAAK,IAAN,EAAA;AAAA,IACE,KAAA,EAAO,CAAE,OAAS,EAAA,cAAA,CAAA;AAAA,IAClB,KAAO,EAAA,kBAAA;AAAA,IACP,IAAK,EAAA,UAAA;AAAA,IACL,OAAS,EAAA,IAAA;AAAA,GAAA,sCAER,WAAD,EAAA;AAAA,IACE,SAAW,EAAA,CAAA;AAAA,IACX,GAAK,EAAA,CAAA;AAAA,IACL,KAAA,EAAO,CAAE,KAAO,EAAA,MAAA,CAAA;AAAA,IAChB,UAAU,MAAM,eAAA,EAAA;AAAA,GAAA,CAAA,CAAA,sCAGnB,MAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,OAAS,EAAA,cAAA;AAAA,MACT,KAAO,EAAA,KAAA;AAAA,MACP,UAAY,EAAA,MAAA;AAAA,MACZ,SAAW,EAAA,QAAA;AAAA,KAAA;AAAA,GAAA,EAGZ,CAAE,CAAA,MAAA,CAAA,CAAA,CAAA,kBAIN,KAAA,CAAA,aAAA,CAAA,IAAA,CAAK,IAAN,EAAA;AAAA,IAAW,IAAK,EAAA,WAAA;AAAA,IAAY,OAAO,CAAE,CAAA,WAAA,CAAA;AAAA,GAClC,EAAA,QAAA,EAAA,CAAA,kBAGF,KAAA,CAAA,aAAA,CAAA,IAAA,CAAK,IAAN,EAAA;AAAA,IAAW,OAAO,CAAE,CAAA,UAAA,CAAA;AAAA,IAAa,QAAU,EAAA,IAAA;AAAA,GAAA,sCACxC,KAAD,EAAA;AAAA,IAAK,KAAO,EAAA,cAAA;AAAA,GAAA,sCACT,SAAD,EAAA;AAAA,IAAW,MAAM,CAAE,CAAA,WAAA,CAAA;AAAA,GACnB,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAK,IAAN,EAAA;AAAA,IAAW,IAAK,EAAA,WAAA;AAAA,IAAY,OAAS,EAAA,IAAA;AAAA,IAAM,KAAO,EAAA,wBAAA;AAAA,GAAA,sCAC/C,MAAD,EAAA;AAAA,IAAQ,KAAO,EAAA,WAAA;AAAA,GAAA,EACZ,OAAO,aAAc,CAAA,GAAA,CAAI,CAAC,CACzB,qBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,MAAR,EAAA;AAAA,IAAe,KAAK,CAAE,CAAA,KAAA;AAAA,IAAO,OAAO,CAAE,CAAA,KAAA;AAAA,GACnC,EAAA,CAAA,CAAE,UAMZ,MAAO,CAAA,8BAAA,IACN,OAAO,SAAU,CAAA,GAAA,CAAI,CAAC,CAAG,KAAA;AAzPrC,IAAA,IAAA,EAAA,CAAA;AA0Pc,IAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA;AAAA,MAAK,KAAK,CAAE,CAAA,KAAA;AAAA,MAAO,KAAO,EAAA,cAAA;AAAA,KAAA,sCACvB,SAAD,EAAA;AAAA,MAAW,MAAM,CAAE,CAAA,GAAA;AAAA,KACnB,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAK,IAAN,EAAA;AAAA,MAAW,MAAM,CAAE,CAAA,KAAA;AAAA,MAAO,OAAS,EAAA,IAAA;AAAA,MAAM,QAAU,EAAA,KAAA;AAAA,KAAA,sCAChD,MAAD,EAAA;AAAA,MAAQ,KAAO,EAAA,WAAA;AAAA,KACZ,EAAA,CAAA,EAAA,GAAA,CAAA,CAAE,gBAAF,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,CAAI,CAAC,OACnB,qBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,MAAR,EAAA;AAAA,MAAe,KAAK,OAAQ,CAAA,KAAA;AAAA,MAAO,OAAO,OAAQ,CAAA,KAAA;AAAA,KAAA,EAC/C,OAAQ,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAajC,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AAC3C,EAAO,OAAA;AAAA,IACL,OAAA,EAAS,MAAM,UAAW,CAAA,OAAA;AAAA,IAC1B,QAAA,EAAU,MAAM,UAAW,CAAA,QAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAI/B,yBAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAAmB,CAAA,CAAA,CAAA,gBAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- import{ESubmitType as g}from"../../../../../../constant/index.js";import{ToSubmitFileData as P,BatchUpdateTrackID as F}from"../../../../../../store/annotation/actionCreators.js";import{useDispatch as _}from"../../../../../../store/ctx.js";import{Form as l,Modal as h,InputNumber as i}from"antd";import n,{useState as x}from"react";import{useTranslation as I}from"react-i18next";var w=Object.defineProperty,B=Object.defineProperties,D=Object.getOwnPropertyDescriptors,m=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,p=(r,e,t)=>e in r?w(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,k=(r,e)=>{for(var t in e||(e={}))v.call(e,t)&&p(r,t,e[t]);if(m)for(var t of m(e))O.call(e,t)&&p(r,t,e[t]);return r},C=(r,e)=>B(r,D(e));const T={labelCol:{span:8},wrapperCol:{span:16}},f=(r,e=!1)=>{const t=Number(r);return!!(typeof r=="undefined"||t<0||isNaN(t)||e===!0&&t===0)},d=(r,e,t=0)=>{const u=Number(e);if(f(e))return Promise.reject(new Error("\u8BF7\u8F93\u5165\u4E00\u4E2A\u5927\u4E8E\u7B49\u4E8E0\u7684\u6570\u5B57"));const o=u.toString().split(".")[1];if((o==null?void 0:o.length)>t){let a=`\u8BF7\u8F93\u5165\u4E00\u4E2A\u5C0F\u6570\u4F4D\u6570\u4E0D\u8D85\u8FC7${t}\u4F4D\u6570\u7684\u6570\u5B57`;return t<1&&(a="\u8BF7\u8F93\u5165\u4E00\u4E2A\u6B63\u6574\u6570"),Promise.reject(a)}return Promise.resolve()},c=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"},{validator:(r,e)=>d(r,e,0)}],j=({id:r})=>{const e=_(),[t,u]=x(!1),[o]=l.useForm(),{t:a}=I(),E=s=>{e(P(g.SyncImgList)),e(F(r,s.newID,[s.prevPage-1,s.nextPage-1])),u(!1)},b=()=>u(!1),y=()=>o.submit();return n.createElement(n.Fragment,null,n.createElement("a",{style:{color:"#666FFF"},onClick:()=>u(!0)},a("BatchUpdateText")),n.createElement(h,{title:a("BatchUpdateTrackID"),visible:t,onCancel:b,onOk:y,wrapClassName:"labelbee-custom-modal"},n.createElement(l,C(k({},T),{form:o,onFinish:E}),n.createElement(l.Item,{name:"id",label:a("CurrentBoxTrackIDs")},r),n.createElement(l.Item,{name:"newID",label:a("TrackIDUnifyAs"),rules:c},n.createElement(i,null)),n.createElement(l.Item,{label:a("UnifyTrackIDRange"),required:!0},n.createElement(l.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:c,name:"prevPage"},n.createElement(i,null)),n.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},"-"),n.createElement(l.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:c,name:"nextPage"},n.createElement(i,null)),n.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},a("Page"))))))};export{d as decimalCheck,j as default,f as isInvalidNumber};
1
+ import{ESubmitType as g}from"../../../../../../constant/index.js";import{ToSubmitFileData as P,BatchUpdateTrackID as _}from"../../../../../../store/annotation/actionCreators.js";import{useDispatch as E}from"../../../../../../store/ctx.js";import{Form as l,Modal as I,InputNumber as c}from"antd";import t,{useState as w}from"react";import{useTranslation as x}from"react-i18next";var h=Object.defineProperty,O=Object.defineProperties,v=Object.getOwnPropertyDescriptors,u=Object.getOwnPropertySymbols,D=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,d=(r,e,a)=>e in r?h(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a,S=(r,e)=>{for(var a in e||(e={}))D.call(e,a)&&d(r,a,e[a]);if(u)for(var a of u(e))k.call(e,a)&&d(r,a,e[a]);return r},T=(r,e)=>O(r,v(e));const C={labelCol:{span:8},wrapperCol:{span:16}},m={width:"80px"},F=({id:r})=>{const e=E(),[a,o]=w(!1),[p]=l.useForm(),{t:n}=x(),f=i=>{e(P(g.SyncImgList)),e(_(r,i.newID,[i.prevPage-1,i.nextPage-1])),o(!1)},y=()=>o(!1),b=()=>p.submit(),s=[{required:!0,message:n("PositiveIntegerCheck")}];return t.createElement(t.Fragment,null,t.createElement("a",{style:{color:"#666FFF"},onClick:()=>o(!0)},n("BatchUpdateText")),t.createElement(I,{title:n("BatchUpdateTrackID"),visible:a,onCancel:y,onOk:b,wrapClassName:"labelbee-custom-modal"},t.createElement(l,T(S({},C),{form:p,onFinish:f}),t.createElement(l.Item,{name:"id",label:n("CurrentBoxTrackIDs")},r),t.createElement(l.Item,{name:"newID",label:n("TrackIDUnifyAs"),rules:s},t.createElement(c,{precision:0,min:1,style:m})),t.createElement(l.Item,{label:n("UnifyTrackIDRange"),required:!0},t.createElement(l.Item,{style:{display:"inline-block"},rules:s,name:"prevPage",noStyle:!0},t.createElement(c,{precision:0,min:1,style:m})),t.createElement("span",{style:{display:"inline-block",width:"24px",textAlign:"center"}},"-"),t.createElement(l.Item,{style:{display:"inline-block"},rules:s,name:"nextPage",noStyle:!0},t.createElement(c,{precision:0,min:1,style:m})),t.createElement("span",{style:{display:"inline-block",width:"40x",marginLeft:"10px",textAlign:"center"}},n("Page"))))))};export{F as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.tsx"],"sourcesContent":["import { ESubmitType } from '@/constant';\nimport { BatchUpdateTrackID, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport { useDispatch } from '@/store/ctx';\nimport { Form, InputNumber, Modal } from 'antd';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nconst layout = {\n labelCol: { span: 8 },\n wrapperCol: { span: 16 },\n};\n\n/**\n * 检查当前数字是否为有效数字\n * @param value\n * @param nonZero 是否包括 0\n * @returns\n */\nexport const isInvalidNumber = (value: any, nonZero = false) => {\n const intValue = Number(value);\n if (typeof value === 'undefined' || intValue < 0 || isNaN(intValue)) {\n return true;\n }\n if (nonZero === true && intValue === 0) {\n return true;\n }\n return false;\n};\n\nexport const decimalCheck = (rule: any, value: any, decimalNum = 0) => {\n const intValue = Number(value);\n if (isInvalidNumber(value)) {\n return Promise.reject(new Error('请输入一个大于等于0的数字'));\n }\n const decimal = intValue.toString().split('.')[1];\n if (decimal?.length > decimalNum) {\n let errorText = `请输入一个小数位数不超过${decimalNum}位数的数字`;\n if (decimalNum < 1) {\n errorText = `请输入一个正整数`;\n }\n return Promise.reject(errorText);\n }\n return Promise.resolve();\n};\n\nconst defaultNumberRules = [\n { required: true, message: '请填写一个数字' },\n { validator: (rule: any, value: any) => decimalCheck(rule, value, 0) },\n];\n\ninterface IProps {\n id: number;\n}\n\nconst BatchUpdateModal = ({ id }: IProps) => {\n const dispatch = useDispatch();\n const [visible, setVisible] = useState(false);\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n const onFinish = (values: any) => {\n dispatch(ToSubmitFileData(ESubmitType.SyncImgList));\n dispatch(BatchUpdateTrackID(id, values.newID, [values.prevPage - 1, values.nextPage - 1]));\n setVisible(false);\n };\n\n const onCancel = () => setVisible(false);\n\n const onOk = () => form.submit();\n\n return (\n <>\n <a style={{ color: '#666FFF' }} onClick={() => setVisible(true)}>\n {t('BatchUpdateText')}\n </a>\n <Modal\n title={t('BatchUpdateTrackID')}\n visible={visible}\n onCancel={onCancel}\n onOk={onOk}\n wrapClassName='labelbee-custom-modal'\n >\n <Form {...layout} form={form} onFinish={onFinish}>\n <Form.Item name='id' label={t('CurrentBoxTrackIDs')}>\n {id}\n </Form.Item>\n\n <Form.Item name='newID' label={t('TrackIDUnifyAs')} rules={defaultNumberRules}>\n <InputNumber />\n </Form.Item>\n <Form.Item label={t('UnifyTrackIDRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block', width: 'calc(50% - 24px)' }}\n rules={defaultNumberRules}\n name='prevPage'\n >\n <InputNumber />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n lineHeight: '32px',\n textAlign: 'center',\n }}\n >\n -\n </span>\n <Form.Item\n style={{ display: 'inline-block', width: 'calc(50% - 24px)' }}\n rules={defaultNumberRules}\n name='nextPage'\n >\n <InputNumber />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n lineHeight: '32px',\n textAlign: 'center',\n }}\n >\n {t('Page')}\n </span>\n </Form.Item>\n </Form>\n </Modal>\n </>\n );\n};\n\nexport default BatchUpdateModal;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,MAAS,GAAA;AAAA,EACb,QAAA,EAAU,CAAE,IAAM,EAAA,CAAA,CAAA;AAAA,EAClB,UAAA,EAAY,CAAE,IAAM,EAAA,EAAA,CAAA;AAAA,CAAA,CAAA;AASf,MAAM,eAAkB,GAAA,CAAC,KAAY,EAAA,OAAA,GAAU,KAAU,KAAA;AAC9D,EAAA,MAAM,WAAW,MAAO,CAAA,KAAA,CAAA,CAAA;AACxB,EAAA,IAAI,OAAO,KAAU,KAAA,WAAA,IAAe,QAAW,GAAA,CAAA,IAAK,MAAM,QAAW,CAAA,EAAA;AACnE,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAET,EAAI,IAAA,OAAA,KAAY,IAAQ,IAAA,QAAA,KAAa,CAAG,EAAA;AACtC,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAET,EAAO,OAAA,KAAA,CAAA;AAAA,EAAA;AAGF,MAAM,YAAe,GAAA,CAAC,IAAW,EAAA,KAAA,EAAY,aAAa,CAAM,KAAA;AACrE,EAAA,MAAM,WAAW,MAAO,CAAA,KAAA,CAAA,CAAA;AACxB,EAAA,IAAI,gBAAgB,KAAQ,CAAA,EAAA;AAC1B,IAAO,OAAA,OAAA,CAAQ,MAAO,CAAA,IAAI,KAAM,CAAA,2EAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAElC,EAAA,MAAM,OAAU,GAAA,QAAA,CAAS,QAAW,EAAA,CAAA,KAAA,CAAM,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/C,EAAI,IAAA,CAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAS,UAAS,UAAY,EAAA;AAChC,IAAA,IAAI,YAAY,CAAe,wEAAA,EAAA,UAAA,CAAA,8BAAA,CAAA,CAAA;AAC/B,IAAA,IAAI,aAAa,CAAG,EAAA;AAClB,MAAY,SAAA,GAAA,CAAA,gDAAA,CAAA,CAAA;AAAA,KAAA;AAEd,IAAA,OAAO,QAAQ,MAAO,CAAA,SAAA,CAAA,CAAA;AAAA,GAAA;AAExB,EAAA,OAAO,OAAQ,CAAA,OAAA,EAAA,CAAA;AAAA,EAAA;AAGjB,MAAM,kBAAqB,GAAA;AAAA,EACzB,CAAE,QAAU,EAAA,IAAA,EAAM,OAAS,EAAA,4CAAA,CAAA;AAAA,EAC3B,CAAE,SAAW,EAAA,CAAC,MAAW,KAAe,KAAA,YAAA,CAAa,MAAM,KAAO,EAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAO9D,MAAA,gBAAA,GAAmB,CAAC,CAAE,EAAiB,CAAA,KAAA;AAC3C,EAAA,MAAM,QAAW,GAAA,WAAA,EAAA,CAAA;AACjB,EAAM,MAAA,CAAC,OAAS,EAAA,UAAA,CAAA,GAAc,QAAS,CAAA,KAAA,CAAA,CAAA;AACvC,EAAM,MAAA,CAAC,QAAQ,IAAK,CAAA,OAAA,EAAA,CAAA;AACpB,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAM,MAAA,QAAA,GAAW,CAAC,MAAgB,KAAA;AAChC,IAAA,QAAA,CAAS,iBAAiB,WAAY,CAAA,WAAA,CAAA,CAAA,CAAA;AACtC,IAAS,QAAA,CAAA,kBAAA,CAAmB,IAAI,MAAO,CAAA,KAAA,EAAO,CAAC,MAAO,CAAA,QAAA,GAAW,CAAG,EAAA,MAAA,CAAO,QAAW,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtF,IAAW,UAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGb,EAAM,MAAA,QAAA,GAAW,MAAM,UAAW,CAAA,KAAA,CAAA,CAAA;AAElC,EAAM,MAAA,IAAA,GAAO,MAAM,IAAK,CAAA,MAAA,EAAA,CAAA;AAExB,EACE,uBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,sCACG,GAAD,EAAA;AAAA,IAAG,KAAA,EAAO,CAAE,KAAO,EAAA,SAAA,CAAA;AAAA,IAAa,OAAA,EAAS,MAAM,UAAW,CAAA,IAAA,CAAA;AAAA,GACvD,EAAA,CAAA,CAAE,iBAEL,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA;AAAA,IACE,OAAO,CAAE,CAAA,oBAAA,CAAA;AAAA,IACT,OAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,aAAc,EAAA,uBAAA;AAAA,GAEd,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAD,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAU,MAAV,CAAA,EAAA;AAAA,IAAkB,IAAA;AAAA,IAAY,QAAA;AAAA,GAC5B,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAK,IAAN,EAAA;AAAA,IAAW,IAAK,EAAA,IAAA;AAAA,IAAK,OAAO,CAAE,CAAA,oBAAA,CAAA;AAAA,GAC3B,EAAA,EAAA,CAAA,kBAGF,KAAA,CAAA,aAAA,CAAA,IAAA,CAAK,IAAN,EAAA;AAAA,IAAW,IAAK,EAAA,OAAA;AAAA,IAAQ,OAAO,CAAE,CAAA,gBAAA,CAAA;AAAA,IAAmB,KAAO,EAAA,kBAAA;AAAA,GAAA,kBACxD,KAAA,CAAA,aAAA,CAAA,WAAA,EAAD,IAEF,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAK,IAAN,EAAA;AAAA,IAAW,OAAO,CAAE,CAAA,mBAAA,CAAA;AAAA,IAAsB,QAAU,EAAA,IAAA;AAAA,GAClD,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAK,IAAN,EAAA;AAAA,IACE,KAAO,EAAA,CAAE,OAAS,EAAA,cAAA,EAAgB,KAAO,EAAA,kBAAA,CAAA;AAAA,IACzC,KAAO,EAAA,kBAAA;AAAA,IACP,IAAK,EAAA,UAAA;AAAA,GAAA,kBAEJ,KAAA,CAAA,aAAA,CAAA,WAAA,EAAD,IAEF,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,OAAS,EAAA,cAAA;AAAA,MACT,KAAO,EAAA,MAAA;AAAA,MACP,UAAY,EAAA,MAAA;AAAA,MACZ,SAAW,EAAA,QAAA;AAAA,KAAA;AAAA,GAEd,EAAA,GAAA,CAAA,kBAGA,KAAA,CAAA,aAAA,CAAA,IAAA,CAAK,IAAN,EAAA;AAAA,IACE,KAAO,EAAA,CAAE,OAAS,EAAA,cAAA,EAAgB,KAAO,EAAA,kBAAA,CAAA;AAAA,IACzC,KAAO,EAAA,kBAAA;AAAA,IACP,IAAK,EAAA,UAAA;AAAA,GAAA,kBAEJ,KAAA,CAAA,aAAA,CAAA,WAAA,EAAD,IAEF,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,OAAS,EAAA,cAAA;AAAA,MACT,KAAO,EAAA,MAAA;AAAA,MACP,UAAY,EAAA,MAAA;AAAA,MACZ,SAAW,EAAA,QAAA;AAAA,KAAA;AAAA,GAAA,EAGZ,CAAE,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.tsx"],"sourcesContent":["import { ESubmitType } from '@/constant';\nimport { BatchUpdateTrackID, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport { useDispatch } from '@/store/ctx';\nimport { Form, InputNumber, Modal } from 'antd';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nconst layout = {\n labelCol: { span: 8 },\n wrapperCol: { span: 16 },\n};\n\n/**\n * 检查当前数字是否为有效数字\n * @param value\n * @param nonZero 是否包括 0\n * @returns\n */\nexport const isInvalidNumber = (value: any, nonZero = false) => {\n const intValue = Number(value);\n if (typeof value === 'undefined' || intValue < 0 || isNaN(intValue)) {\n return true;\n }\n if (nonZero === true && intValue === 0) {\n return true;\n }\n return false;\n};\n\ninterface IProps {\n id: number;\n}\n\nconst inputStyle = {\n width: '80px',\n};\n\nconst BatchUpdateModal = ({ id }: IProps) => {\n const dispatch = useDispatch();\n const [visible, setVisible] = useState(false);\n const [form] = Form.useForm();\n const { t } = useTranslation();\n\n const onFinish = (values: any) => {\n dispatch(ToSubmitFileData(ESubmitType.SyncImgList));\n dispatch(BatchUpdateTrackID(id, values.newID, [values.prevPage - 1, values.nextPage - 1]));\n setVisible(false);\n };\n\n const onCancel = () => setVisible(false);\n\n const onOk = () => form.submit();\n const defaultNumberRules = [{ required: true, message: t('PositiveIntegerCheck') }];\n\n return (\n <>\n <a style={{ color: '#666FFF' }} onClick={() => setVisible(true)}>\n {t('BatchUpdateText')}\n </a>\n <Modal\n title={t('BatchUpdateTrackID')}\n visible={visible}\n onCancel={onCancel}\n onOk={onOk}\n wrapClassName='labelbee-custom-modal'\n >\n <Form {...layout} form={form} onFinish={onFinish}>\n <Form.Item name='id' label={t('CurrentBoxTrackIDs')}>\n {id}\n </Form.Item>\n\n <Form.Item name='newID' label={t('TrackIDUnifyAs')} rules={defaultNumberRules}>\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <Form.Item label={t('UnifyTrackIDRange')} required={true}>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='prevPage'\n noStyle={true}\n >\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '24px',\n textAlign: 'center',\n }}\n >\n -\n </span>\n <Form.Item\n style={{ display: 'inline-block' }}\n rules={defaultNumberRules}\n name='nextPage'\n noStyle={true}\n >\n <InputNumber precision={0} min={1} style={inputStyle} />\n </Form.Item>\n <span\n style={{\n display: 'inline-block',\n width: '40x',\n marginLeft: '10px',\n textAlign: 'center',\n }}\n >\n {t('Page')}\n </span>\n </Form.Item>\n </Form>\n </Modal>\n </>\n );\n};\n\nexport default BatchUpdateModal;\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.7.0-alpha.4",
3
+ "version": "1.7.0-alpha.6",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",
@@ -41,8 +41,8 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@ant-design/icons": "^4.6.2",
44
- "@labelbee/lb-annotation": "^1.10.0-alpha.4",
45
- "@labelbee/lb-utils": "^1.4.0-alpha.4",
44
+ "@labelbee/lb-annotation": "^1.10.0-alpha.6",
45
+ "@labelbee/lb-utils": "^1.4.0-alpha.6",
46
46
  "ahooks": "^3.4.0",
47
47
  "classnames": "^2.3.0",
48
48
  "lodash": "^4.17.21",
@@ -97,5 +97,5 @@
97
97
  "path": "node_modules/cz-conventional-changelog"
98
98
  }
99
99
  },
100
- "gitHead": "4541320d5d715d90aa5c4bea018a20949b7f4755"
100
+ "gitHead": "f0a0574415ffa659dfd669f0ca8a39bd14531851"
101
101
  }