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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var 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
- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,CAAE,eAAoB,CAAA,GAAA,KAAA,CAAA;AAE5B,MAAM,kBAAiD,GAAA,CAAC,CAAE,WAAA,EAAa,MAAa,CAAA,KAAA;AAClF,EAAA,MAAM,QAAQ,UAAW,CAAA,iBAAA,CAAA,CAAA;AACzB,EAAA,MAAM,CAAE,sBAAA,EAAwB,aAAe,EAAA,aAAA,EAAe,iBAC5D,CAAA,GAAA,YAAA,EAAA,CAAA;AACF,EAAA,MAAM,CAAE,cAAmB,CAAA,GAAA,SAAA,EAAA,CAAA;AAC3B,EAAM,MAAA,SAAA,GAAY,WAAW,WAAY,CAAA,MAAA,CAAA,CAAA;AACzC,EAAM,MAAA,CAAE,iBAAmB,EAAA,kBAAA,EAAoB,WAAgB,CAAA,GAAA,QAAA,EAAA,CAAA;AAC/D,EAAM,MAAA,CAAE,eAAoB,CAAA,GAAA,qBAAA,CAAsB,CAAE,SAAA,CAAA,CAAA,CAAA;AACpD,EAAM,MAAA,CAAE,YAAiB,CAAA,GAAA,SAAA,CAAU,CAAE,WAAA,CAAA,CAAA,CAAA;AACrC,EAAA,MAAM,CAAE,oBAAyB,CAAA,GAAA,kBAAA,EAAA,CAAA;AACjC,EAAM,MAAA,CAAE,IAAM,EAAA,IAAA,EAAM,mBAAwB,CAAA,GAAA,UAAA,EAAA,CAAA;AAC5C,EAAM,MAAA,CAAE,yBAAyB,uBAA4B,CAAA,GAAA,YAAA,EAAA,CAAA;AAE7D,EAAM,MAAA,aAAA,GAAgB,CAAC,YAAA,EAAsB,CAAqB,KAAA;AAhCpE,IAAA,IAAA,EAAA,CAAA;AAiCI,IAAM,MAAA,CAAE,iBAAiB,gBAAqB,CAAA,GAAA,KAAA,CAAA;AAC9C,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAM,MAAA,CAAE,uBAAuB,6BAAkC,CAAA,GAAA,eAAA,CAAA;AAEjE,IAAQ,QAAA,YAAA;AAAA,MAAA,KACD,GAAK,EAAA;AAER,QAAa,YAAA,CAAA,CAAA,CAAA,CAAA;AACb,QAAA,MAAA;AAAA,OAAA;AAAA,MAGG,KAAA,GAAA;AAEH,QAAa,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEb,QAAA,MAAA;AAAA,MAEG,KAAA,GAAA;AAEH,QAAa,YAAA,CAAA,GAAA,CAAA,CAAA;AAEb,QAAA,MAAA;AAAA,MAEG,KAAA,GAAA;AACH,QAAA;AAEE,UAAA,MAAM,aACJ,6BAA8B,CAAA,OAAA,KAAY,gBAAgB,MACtD,GAAA,eAAA,CAAgB,OAChB,eAAgB,CAAA,MAAA,CAAA;AACtB,UAAA,6BAAA,CAA8B,UAAW,CAAA,UAAA,CAAA,CAAA;AACzC,UAAA,MAAM,eAAkB,GAAA;AAAA,YAAA,CACrB,gBAAgB,MAAS,GAAA,gBAAA;AAAA,YAAA,CACzB,gBAAgB,IAAO,GAAA,cAAA;AAAA,WAAA,CAAA;AAE1B,UAAQ,OAAA,CAAA,OAAA,CAAQ,qBAAqB,eAAgB,CAAA,UAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA;AAGrD,UAA8B,6BAAA,CAAA,iBAAA,EAAA,CAAA;AAC9B,UAA8B,6BAAA,CAAA,kBAAA,EAAA,CAAA;AAAA,SAAA;AAGhC,QAAA,MAAA;AAAA,MAGG,KAAA,GAAA;AACH,QAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAkB,eAAgB,CAAA,IAAA,CAAA,CAAA;AAClC,QAAA,MAAA;AAAA,MAGG,KAAA,GAAA;AACH,QAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAkB,eAAgB,CAAA,KAAA,CAAA,CAAA;AAClC,QAAA,MAAA;AAAA,MAEG,KAAA,GAAA;AACH,QAAM,KAAA,CAAA,kBAAA,CAAmB,CAAC,KAAM,CAAA,KAAA,CAAA,CAAA;AAChC,QAAA,MAAA;AAAA,MAEG,KAAA,KAAA;AACH,QAAA,IAAI,EAAE,QAAU,EAAA;AACd,UAAA,aAAA,EAAA,CAAA;AACA,UAAA,MAAA;AAAA,SAAA;AAEF,QAAA,aAAA,EAAA,CAAA;AACA,QAAA,MAAA;AAAA,MAEG,KAAA,GAAA;AACH,QAAA,sBAAA,EAAA,CAAA;AACA,QAAA,MAAA;AAAA,MAEO,SAAA;AACP,QAAA,IAAI,CAAO,CAAA,EAAA,GAAA,MAAA,CAAA,aAAA,KAAP,IAAsB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,IAAS,CAAG,EAAA;AACpC,UAAA,MAAM,iBAAoB,GAAA,cAAA,CAAe,qBACvC,CAAA,CAAA,CAAE,SACF,MAAO,CAAA,aAAA,CAAA,CAAA;AAGT,UAAA,IAAI,sBAAsB,KAAW,CAAA,EAAA;AACnC,YAAA,eAAA,CAAgB,QAAQ,mBAAoB,CAAA,iBAAA,CAAA,CAAA;AAAA,WAAA;AAAA,SAAA;AAGhD,QAAA,OAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAKN,EAAM,MAAA,iBAAA,GAAoB,CAAC,YAAA,EAAsB,CAAqB,KAAA;AACpE,IAAQ,QAAA,YAAA;AAAA,MACD,KAAA,GAAA;AACH,QAAA,iBAAA,EAAA,CAAA;AACA,QAAA,MAAA;AAAA,MACG,KAAA,GAAA;AACH,QAAA,kBAAA,EAAA,CAAA;AACA,QAAA,MAAA;AAAA,MACG,KAAA,GAAA;AACH,QAAM,KAAA,CAAA,gBAAA,EAAA,CAAA;AACN,QAAA,MAAA;AAAA,MAAA,KACG,GAAK,EAAA;AACR,QAAA,IAAI,EAAE,QAAU,EAAA;AACd,UAAA,IAAA,EAAA,CAAA;AAAA,SACK,MAAA;AACL,UAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAEF,QAAA,MAAA;AAAA,OAAA;AAIA,KAAA;AAAA,GAAA,CAAA;AAIN,EAAM,MAAA,SAAA,GAAY,CAAC,CAAqB,KAAA;AACtC,IAAM,MAAA,YAAA,GAAe,EAAE,GAAI,CAAA,iBAAA,EAAA,CAAA;AAE3B,IAAA,IAAI,EAAE,OAAS,EAAA;AACb,MAAA,iBAAA,CAAkB,YAAc,EAAA,CAAA,CAAA,CAAA;AAChC,MAAA,OAAA;AAAA,KAAA;AAGF,IAAA,aAAA,CAAc,YAAc,EAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAG9B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,CAAE,eAAoB,CAAA,GAAA,KAAA,CAAA;AAC5B,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAA,MAAA,CAAO,iBAAiB,SAAW,EAAA,SAAA,CAAA,CAAA;AAEnC,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,oBAAoB,SAAW,EAAA,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAEvC,EAAA,CAAC,OAAO,WAAa,EAAA,MAAA,CAAA,CAAA,CAAA;AAGxB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,oBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,oBAAA,EAAA,CAAA;AAAA,GACC,EAAA,CAAC,aAAa,KAAM,CAAA,gBAAA,CAAA,CAAA,CAAA;AAGvB,EAAA,SAAA,CAAU,MAAM;AACd,IAAgB,eAAA,CAAA,OAAA,CAAQ,aAAa,MAAM;AACzC,MAAA,OAAO,CAAC,KAAA,CAAM,iBAAmB,EAAA,CAAE,OAAO,KAAM,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAGlD,IAAgB,eAAA,CAAA,OAAA,CAAQ,mBAAmB,MAAM;AAtLrD,MAAA,IAAA,EAAA,CAAA;AAuLM,MAAO,OAAA;AAAA,QACL,aAAA,EAAe,CAAM,EAAA,GAAA,KAAA,CAAA,WAAA,KAAN,IAAqB,GAAA,EAAA,GAAA,EAAA;AAAA,OAAA,CAAA;AAAA,KAAA,CAAA;AAIxC,IAAgB,eAAA,CAAA,OAAA,CAAQ,mBAAsB,GAAA,CAAC,YAAyB,KAAA;AACtE,MAAwB,uBAAA,CAAA,YAAA,CAAA,CAAA;AACxB,MAAA,MAAM,YAAY,KAAM,CAAA,qBAAA,CAAA;AACxB,MAAA,IAAI,SAAW,EAAA;AACb,QAAA,SAAA,CAAU,SAAY,GAAA,YAAA,CAAA;AAEtB,QAAkB,iBAAA,CAAA,SAAA,CAAA,CAAA;AAClB,QAAwB,uBAAA,CAAA,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAAA,CAAA;AAI5B,IAAA,eAAA,CAAgB,OAAQ,CAAA,eAAA,GAAkB,CAAC,GAAA,EAAa,KAAkB,KAAA;AAvM9E,MAAA,IAAA,EAAA,CAAA;AAwMM,MAAA,MAAM,YAAY,KAAM,CAAA,qBAAA,CAAA;AACxB,MAAA,IAAI,SAAW,EAAA;AACb,QAAM,MAAA,kBAAA,GAAqB,CAAW,EAAA,GAAA,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,YAAA,KAAX,IAA2B,GAAA,EAAA,GAAA,EAAA,CAAA;AAEtD,QAAU,SAAA,CAAA,YAAA,GAAe,iCACpB,kBADoB,CAAA,EAAA;AAAA,UAAA,CAEtB,GAAM,GAAA,KAAA;AAAA,SAAA,CAAA,CAAA;AAGT,QAAkB,iBAAA,CAAA,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAAA,CAAA;AAGtB,IAAgB,eAAA,CAAA,OAAA,CAAQ,cAAc,MAAM;AAC1C,MAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,EAAA,CAAA;AAAA,KAAA,CAAA;AAGF,IAAgB,eAAA,CAAA,OAAA,CAAQ,OAAO,MAAM;AACnC,MAAA,IAAA,EAAA,CAAA;AAAA,KAAA,CAAA;AAGF,IAAgB,eAAA,CAAA,OAAA,CAAQ,OAAO,MAAM;AACnC,MAAA,IAAA,EAAA,CAAA;AAAA,KAAA,CAAA;AAGF,IAAgB,eAAA,CAAA,OAAA,CAAQ,QAAW,GAAA,CAAC,KAAmB,KAAA;AACrD,MAAA,eAAA,CAAgB,QAAQ,KAAQ,GAAA,KAAA,CAAA;AAGhC,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,KAAA,CAAM,kBAAmB,CAAA,KAAA,CAAA,CAAA;AAEzB,QAAA,IAAI,UAAU,KAAO,EAAA;AACnB,UAAA,cAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAAA,EAIL,CAAC,KAAM,CAAA,iBAAA,EAAmB,MAAM,UAAY,EAAA,KAAA,CAAM,OAAO,KAAM,CAAA,WAAA,CAAA,CAAA,CAAA;AAElE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,eAAA,CAAgB,QAAQ,OAAU,GAAA;AAAA,MAEhC,WAAA,EAAa,CAAC,MAAkB,KAAA;AAG9B,QAAA,mBAAA,CAAoB,CAAE,iBAAmB,EAAA,MAAA,CAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAE3C,YAAY,MAAM;AAAA,OAAA;AAAA,KAAA,CAAA;AAAA,GAEnB,EAAA,EAAA,CAAA,CAAA;AAEH,EAAA,SAAA,CAAU,MAAM;AA1PlB,IAAA,IAAA,EAAA,CAAA;AA2PI,IAAM,MAAA,YAAA,GAAe,CAAM,EAAA,GAAA,KAAA,CAAA,eAAA,KAAN,IAAuB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,qBAAA,CAAA;AAE5C,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAA,OAAA;AAAA,KAAA;AAGF,IAAM,MAAA,aAAA,GAAgB,CAAC,YAAyB,KAAA;AAC9C,MAAwB,uBAAA,CAAA,YAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAG1B,IAAM,MAAA,YAAA,GAAe,CAAC,KAAkB,KAAA;AACtC,MAAA,OAAA,CAAQ,KAAM,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAEhB,IAAM,MAAA,WAAA,GAAc,CAAC,IAAiB,KAAA;AACpC,MAAA,OAAA,CAAQ,IAAK,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAGf,IAAA,YAAA,CAAa,GAAG,eAAiB,EAAA,aAAA,CAAA,CAAA;AACjC,IAAA,YAAA,CAAa,GAAG,cAAgB,EAAA,YAAA,CAAA,CAAA;AAChC,IAAA,YAAA,CAAa,GAAG,aAAe,EAAA,WAAA,CAAA,CAAA;AAE/B,IAAA,OAAO,MAAM;AACX,MAAA,YAAA,CAAa,OAAO,eAAiB,EAAA,aAAA,CAAA,CAAA;AACrC,MAAA,YAAA,CAAa,OAAO,cAAgB,EAAA,YAAA,CAAA,CAAA;AACpC,MAAA,YAAA,CAAa,OAAO,aAAe,EAAA,WAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAAA,EAEpC,CAAC,KAAM,CAAA,eAAA,CAAA,CAAA,CAAA;AAEV,EAAO,OAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAGT,2BAAe,QAAQ,iBAAmB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAC/D,CAAA,CAAA,CAAA,kBAAA,CAAA;;;;"}
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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"}
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.5",
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.5",
45
+ "@labelbee/lb-utils": "^1.4.0-alpha.5",
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": "0021238d19a2f4439005c54016ff975c1017280b"
101
101
  }