@labelbee/lb-components 1.24.0-alpha.2 → 1.24.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),index$4=require("../../constant/index.js"),reducer=require("../../store/annotation/reducer.js"),ctx=require("../../store/ctx.js"),index$5=require("../../utils/index.js"),reactRedux=require("react-redux"),index=require("../../store/LLMMultiWheel/index.js"),index$1=require("../../views/MainView/LLMMultiWheelLayout/index.js"),index$2=require("../LLMToolView/questionView/components/header/index.js"),index$3=require("./dialogView/index.js"),index$7=require("../messageMaskLayer/index.js"),index$8=require("../../views/MainView/annotationTips/index.js"),reactI18next=require("react-i18next"),index$6=require("../LLMToolView/questionView/index.js"),antd=require("antd"),lbUtils=require("@labelbee/lb-utils");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,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const LLMMultiWheelSourceView=e=>{const{questionIsImg:t,answerIsImg:n,LLMConfig:o,dialogList:c,lang:s="cn"}=e,{dataFormatType:u,setDataFormatType:i}=index();return React.useEffect(()=>{var r;s&&((r=lbUtils.i18n)==null||r.changeLanguage(s))},[s]),React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement("div",{className:`${index$1.LLMMultiWheelViewCls}`},React__default.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},React__default.default.createElement(index$2.ToggleDataFormatType,{dataFormatType:u,setDataFormatType:i})),React__default.default.createElement("div",{className:`${index$1.LLMMultiWheelViewCls}-container`},c==null?void 0:c.map((r,d)=>React__default.default.createElement(index$3,__spreadProps(__spreadValues({},r),{key:d,index:d,questionIsImg:t,answerIsImg:n,LLMConfig:o}))))))},getInfoFromLLMFile=({type:e,questionIndex:t,answerIndex:n,llmFile:o})=>{if(e==="question")return o==null?void 0:o.find((s,u)=>t===u);let c=null;return o==null||o.forEach((s,u)=>{var i;(i=s.answerList)==null||i.forEach((r,d)=>{u===t&&n===d&&(c=r)})}),c},LLMMultiWheelView=e=>{var t,n;const{annotation:o,tips:c,showTips:s,drawLayerSlot:u}=e,{imgIndex:i,imgList:r,stepList:d,step:x,toolInstance:p}=o,[w,T]=React.useState(),{setSelectedID:D,newAnswerListMap:y}=index(),[O,q]=React.useState([]),M=((t=w==null?void 0:w.dataType)==null?void 0:t.prompt)===index$4.ELLMDataType.Picture,m=((n=w==null?void 0:w.dataType)==null?void 0:n.response)===index$4.ELLMDataType.Picture,{t:S}=reactI18next.useTranslation(),[,$]=React.useState(0);return React.useEffect(()=>{var a,v,f;if(!r[i])return;const _=(a=r[i])!=null?a:{},L=(f=(v=_==null?void 0:_.questionList)==null?void 0:v.textList)!=null?f:[];q(L),(L==null?void 0:L.length)&&D(L[0].id)},[i]),React.useEffect(()=>{var a,v;const f=(a=r[i])!=null?a:{},_=f==null?void 0:f.questionList,L=(v=f==null?void 0:f.llmFile)==null?void 0:v.textList,E=_==null?void 0:_.textList,C=E==null?void 0:E.map((l,j)=>{var P;return __spreadProps(__spreadValues({},l),{question:M&&getInfoFromLLMFile({type:"question",questionIndex:j,llmFile:L})||(l==null?void 0:l.question),answerList:(P=l==null?void 0:l.answerList)==null?void 0:P.map((g,b)=>{var h,I,V;const W=`${(h=l==null?void 0:l.id)!=null?h:""}-${(I=g==null?void 0:g.id)!=null?I:""}`,A=m?getInfoFromLLMFile({type:"answer",questionIndex:j,answerIndex:b,llmFile:L})||{}:{};return __spreadValues(__spreadProps(__spreadValues({},g),{answer:g.answer,newAnswer:(V=y[W])!=null?V:g.answer,order:b+1}),A)})})});q(C)},[y,M,m]),React.useEffect(()=>{var a;if(d&&x){const v=(a=reducer.getStepConfig(d,x))==null?void 0:a.config;T(index$5.jsonParser(v))}},[d,x]),React.useEffect(()=>{if(p)return p.on("validUpdated",()=>{$(a=>a+1)}),()=>{p.unbindAll("validUpdated")}},[p]),React__default.default.createElement(antd.Layout,{className:index$6.LLMViewCls},!(p==null?void 0:p.valid)&&React__default.default.createElement(index$7,{message:S("InvalidQuestionAndSkip")}),u==null?void 0:u({}),s===!0&&React__default.default.createElement(index$8,{tips:c}),React__default.default.createElement(LLMMultiWheelSourceView,{questionIsImg:M,answerIsImg:m,LLMConfig:w,dialogList:O}))},mapStateToProps=e=>({annotation:e.annotation});var LLMMultiWheelView$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(LLMMultiWheelView);exports.LLMMultiWheelSourceView=LLMMultiWheelSourceView,exports.default=LLMMultiWheelView$1;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),index$4=require("../../constant/index.js"),reducer=require("../../store/annotation/reducer.js"),ctx=require("../../store/ctx.js"),index$5=require("../../utils/index.js"),reactRedux=require("react-redux"),index=require("../../store/LLMMultiWheel/index.js"),index$1=require("../../views/MainView/LLMMultiWheelLayout/index.js"),index$2=require("../LLMToolView/questionView/components/header/index.js"),index$3=require("./dialogView/index.js"),index$7=require("../messageMaskLayer/index.js"),index$8=require("../../views/MainView/annotationTips/index.js"),reactI18next=require("react-i18next"),index$6=require("../LLMToolView/questionView/index.js"),antd=require("antd"),lbUtils=require("@labelbee/lb-utils");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,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const LLMMultiWheelSourceView=e=>{const{questionIsImg:t,answerIsImg:n,LLMConfig:o,dialogList:c,lang:s="cn"}=e,{dataFormatType:u,setDataFormatType:i}=index();return React.useEffect(()=>{var r;s&&((r=lbUtils.i18n)==null||r.changeLanguage(s))},[s]),React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement("div",{className:`${index$1.LLMMultiWheelViewCls}`},React__default.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end",margin:"10px"}},React__default.default.createElement(index$2.ToggleDataFormatType,{dataFormatType:u,setDataFormatType:i})),React__default.default.createElement("div",{className:`${index$1.LLMMultiWheelViewCls}-container`},c==null?void 0:c.map((r,d)=>React__default.default.createElement(index$3,__spreadProps(__spreadValues({},r),{key:d,index:d,questionIsImg:t,answerIsImg:n,LLMConfig:o}))))))},getInfoFromLLMFile=({type:e,questionIndex:t,answerIndex:n,llmFile:o})=>{if(e==="question")return o==null?void 0:o.find((s,u)=>t===u);let c=null;return o==null||o.forEach((s,u)=>{var i;(i=s.answerList)==null||i.forEach((r,d)=>{u===t&&n===d&&(c=r)})}),c},LLMMultiWheelView=e=>{var t,n;const{annotation:o,tips:c,showTips:s,drawLayerSlot:u}=e,{imgIndex:i,imgList:r,stepList:d,step:x,toolInstance:p}=o,[w,T]=React.useState(),{setSelectedID:D,newAnswerListMap:y}=index(),[O,q]=React.useState([]),m=((t=w==null?void 0:w.dataType)==null?void 0:t.prompt)===index$4.ELLMDataType.Picture,M=((n=w==null?void 0:w.dataType)==null?void 0:n.response)===index$4.ELLMDataType.Picture,{t:S}=reactI18next.useTranslation(),[,$]=React.useState(0);return React.useEffect(()=>{var a,v,f;if(!r[i])return;const _=(a=r[i])!=null?a:{},L=(f=(v=_==null?void 0:_.questionList)==null?void 0:v.textList)!=null?f:[];q(L),(L==null?void 0:L.length)&&D(L[0].id)},[i]),React.useEffect(()=>{var a,v;const f=(a=r[i])!=null?a:{},_=f==null?void 0:f.questionList,L=(v=f==null?void 0:f.llmFile)==null?void 0:v.textList,E=_==null?void 0:_.textList,C=E==null?void 0:E.map((l,j)=>{var P;return __spreadProps(__spreadValues({},l),{question:m&&getInfoFromLLMFile({type:"question",questionIndex:j,llmFile:L})||(l==null?void 0:l.question),answerList:(P=l==null?void 0:l.answerList)==null?void 0:P.map((g,b)=>{var h,I,V;const W=`${(h=l==null?void 0:l.id)!=null?h:""}-${(I=g==null?void 0:g.id)!=null?I:""}`,A=M?getInfoFromLLMFile({type:"answer",questionIndex:j,answerIndex:b,llmFile:L})||{}:{};return __spreadValues(__spreadProps(__spreadValues({},g),{answer:g.answer,newAnswer:(V=y[W])!=null?V:g.answer,order:b+1}),A)})})});q(C)},[y,m,M]),React.useEffect(()=>{var a;if(d&&x){const v=(a=reducer.getStepConfig(d,x))==null?void 0:a.config;T(index$5.jsonParser(v))}},[d,x]),React.useEffect(()=>{if(p)return p.on("validUpdated",()=>{$(a=>a+1)}),()=>{p.unbindAll("validUpdated")}},[p]),React__default.default.createElement(antd.Layout,{className:index$6.LLMViewCls},!(p==null?void 0:p.valid)&&React__default.default.createElement(index$7,{message:S("InvalidQuestionAndSkip")}),u==null?void 0:u({}),s===!0&&React__default.default.createElement(index$8,{tips:c}),React__default.default.createElement(LLMMultiWheelSourceView,{questionIsImg:m,answerIsImg:M,LLMConfig:w,dialogList:O}))},mapStateToProps=e=>({annotation:e.annotation});var LLMMultiWheelView$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(LLMMultiWheelView);exports.LLMMultiWheelSourceView=LLMMultiWheelSourceView,exports.default=LLMMultiWheelView$1;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),index$3=require("../audioPlayer/index.js"),dom=require("../../utils/dom.js"),index$4=require("../predictTracking/previewResult/index.js"),es=require("antd/es"),antd=require("antd"),index$5=require("../../constant/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index_module=require("./index.module.scss.js"),index$2=require("./tagResultShow/index.js"),index$1=require("./audioContext/index.js"),index$6=require("./textInput/index.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),annotation=require("../../hooks/annotation.js"),index$7=require("../../views/MainView/sidebar/index.js"),index$8=require("./audioSide/labelSidebar/index.js"),index$9=require("./audioSide/clipSidebar/index.js"),tag=require("../../assets/annotation/audio/tag.svg.js"),tagA=require("../../assets/annotation/audio/tagA.svg.js"),clip=require("../../assets/annotation/audio/clip.svg.js"),clipA=require("../../assets/annotation/audio/clipA.svg.js"),audio=require("../../utils/audio.js"),dataTransform=require("./utils/dataTransform.js"),ahooks=require("ahooks");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,l,r)=>l in t?__defProp(t,l,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[l]=r,__spreadValues=(t,l)=>{for(var r in l||(l={}))__hasOwnProp.call(l,r)&&__defNormalProp(t,r,l[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(l))__propIsEnum.call(l,r)&&__defNormalProp(t,r,l[r]);return t},__spreadProps=(t,l)=>__defProps(t,__getOwnPropDescs(l));const{EAudioToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ToggleAudioOption=({setSideTab:t,sideTab:l})=>{const r=[{tab:"tag",commonSvg:tag,selectedSvg:tagA},{tab:"clip",commonSvg:clip,selectedSvg:clipA}];return React__default.default.createElement("div",{className:index_module.toggleAudioOption},r.map((f,x)=>{const{tab:d,selectedSvg:E,commonSvg:_}=f;return React__default.default.createElement("div",{key:x,className:index_module.option},React__default.default.createElement("img",{className:index_module.icon,src:l===d?E:_,onClick:()=>{l!==d&&t(d)}}))}))},AudioTextToolTextarea=({result:t,inputDisabled:l,updateText:r,configList:f,autofocus:x,preContext:d,isCheck:E,clipAttributeConfigurable:_,clipTextConfigurable:A,textConfigurable:m,updateRegion:S,clipAttributeList:c,clipTextList:v})=>React__default.default.createElement("div",{className:index_module.textareaContainer},React__default.default.createElement("div",{className:index_module.textareaContent},React__default.default.createElement(index$6.default,{isCheck:E,result:t==null?void 0:t.value,textInputDisabled:l,textID:(t==null?void 0:t.id)||0,updateText:r,configList:f,autofocus:!l&&x,preContext:d,regions:t==null?void 0:t.regions,clipAttributeConfigurable:_,clipTextConfigurable:A,textConfigurable:m,updateRegion:S,clipAttributeList:c,clipTextList:v}))),AudioSideBar=t=>{var l,r;const{sider:f,config:x,result:d,updateTagResult:E,updateRegion:_,isEdit:A,tagConfigurable:m,clipConfigurable:S}=t;let c=(x==null?void 0:x.inputList)||[],v=(l=d==null?void 0:d.tag)!=null?l:{},s=(r=d==null?void 0:d.regions)!=null?r:[];const[D,j]=React.useState([]),[y,g]=React.useState("tag");React.useEffect(()=>{if(!m&&S){g("clip");return}g("tag")},[m,S]),React.useEffect(()=>(window.addEventListener("keydown",I),()=>{window.removeEventListener("keydown",I)}));const I=n=>{if(m&&S)switch(n.keyCode){case EKeyCode.L:g("tag");break;case EKeyCode.X:g("clip");break}if(y==="tag"){if(!lbAnnotation.CommonToolUtils.hotkeyFilter(n))return;lbAnnotation.CommonToolUtils.isMoveKey(n==null?void 0:n.keyCode)&&n.preventDefault();let o=n.keyCode;if(o&&(o<=57&&o>=49||o<=105&&o>=97)){o>57?o=o-97:o=o-49;const R=D.slice();c.length===1?(T(0,o),j([0,o]),setTimeout(()=>{j([])},500)):R.length===1?(T(R[0],o),j([R[0],o]),setTimeout(()=>{j([])},500)):j([o])}}},T=(n,o)=>{if(n<c.length&&c[n].subSelected&&o<c[n].subSelected.length){const R=c[n].value,a=c[n].isMulti;let L=c[n].subSelected[o].value,M=0;const N=v;for(const b in v)if(b===c[n].value){if(M++,a===!0){const w=N[b].split(";").filter(U=>U!==""),p=w.indexOf(L);p===-1?w.push(L):w.splice(p,1),L=w.join(";")}L===""?delete N[b]:N[b]=L}M===0&&Object.assign(v,{[R]:L}),E(v)}},h=n=>{delete v[n],E(v)},O=m&&S&&React__default.default.createElement(ToggleAudioOption,{setSideTab:g,sideTab:y}),P=y==="tag"&&React__default.default.createElement(index$8.default,{labelInfoSet:m?c:[],labelSelectedList:D,setLabel:T,tagResult:v,clearResult:h,isEdit:A,withPanelTab:!1}),k=y==="clip"&&React__default.default.createElement(index$9,{regions:s,updateRegion:_,useAudioClipStore:index$1.useAudioClipStore});return f?typeof f=="function"?React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},f({toggleAudioOption:O,labelSidebar:P,clipSidebar:k})):f:React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},React__default.default.createElement("div",{className:`${index$7.sidebarCls}__content`},O,P,k))},AudioAnnotate=t=>{var l,r,f,x,d,E,_,A,m;const S=(r=(l=t.style)==null?void 0:l.sider)==null?void 0:r.width,{step:c,stepList:v,audioContext:s,sider:D,drawLayerSlot:j,imgList:y,imgIndex:g,currentData:I,config:T,stepInfo:h,checkMode:O}=t,P=lbAnnotation.CommonToolUtils.getCurrentStepToolAndConfig(c,v),k=index.jsonParser(I.result),{toolInstanceRef:n}=annotation.useCustomToolInstance({basicInfo:k}),[o,R]=React.useState(!0),[a,L]=React.useState(null),[M,N]=React.useState(0),[b,w]=React.useState(!0),p=e=>{if(!e)return;const i=dataTransform.fixData(e);L(i)};React.useEffect(()=>{R(!0)},[g]),React.useEffect(()=>{o===!1&&se()},[o]),React.useEffect(()=>{Z()},[]),React.useEffect(()=>{n.current.exportData=()=>[[a],{duration:M,valid:b}],n.current.setResult=ge,n.current.clearResult=pe,n.current.currentPageResult=a==null?void 0:a.regions,n.current.emit("updatePageNumber"),n.current.setSelectedRegion=U,n.current.setValid=me},[a,b]);const U=e=>{lbAnnotation.EventBus.emit("setSelectedRegion",{id:e,isLoopStatus:!0,playImmediately:!0})},Z=()=>{n.current.emit=e=>{const i=n.current.fns.get(e);i&&i.forEach(u=>{u&&(u==null||u())})},n.current.fns=new Map,n.current.singleOn=(e,i)=>{n.current.fns.set(e,[i])},n.current.on=(e,i)=>{n.current.singleOn(e,i)},n.current.unbindAll=e=>{n.current.fns.delete(e)}},B=React.useMemo(()=>{const e=k[`step_${h==null?void 0:h.step}`];return(e==null?void 0:e.result)||[]},[T,k,h]),{tagConfigurable:z,textConfigurable:F=!0,clipConfigurable:X=!1,clipAttributeConfigurable:G=!1,clipAttributeList:H=[],clipTextConfigurable:V=!1,subAttributeList:ee=[],secondaryAttributeConfigurable:te=!1,inputList:ne=[],configList:le=[],clipTextList:J=index$1.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=React.useMemo(()=>{if(P)return lbAnnotation.CommonToolUtils.jsonParser(P==null?void 0:P.config)},[P]),oe={clipConfigurable:X,clipAttributeConfigurable:G,clipAttributeList:H,clipTextConfigurable:V,subAttributeList:ee,secondaryAttributeConfigurable:te,clipTextList:J},ie=(x=(f=lbAnnotation.CommonToolUtils.jsonParser(I.result))==null?void 0:f.duration)!=null?x:0,ae=b?ie:0,re=!b||o||![F,V].includes(!0)||O;let Q={};if(g!==-1&&(y==null?void 0:y.length)){const e=(d=y[g])==null?void 0:d.preResult,i=(s==null?void 0:s.isEdit)?(E=s==null?void 0:s.stepConfig)==null?void 0:E.loadPreStep:h==null?void 0:h.loadPreStep;if(e&&i){const u=lbAnnotation.CommonToolUtils.jsonParser(e),C=(A=(_=u==null?void 0:u.config)==null?void 0:_.context)!=null?A:{};Object.keys(C).forEach(q=>{q&&C[q]&&(Q[q]={visible:!0,content:C[q],type:q})})}}const se=()=>{(B==null?void 0:B.length)>0?p(B[0]):p({id:lbAnnotation.uuid(),sourceID:"",value:Y(),tag:ue(),regions:[]});const e=audio.isImageValue(y[g].result||"[]");w(e)},Y=(e=!0)=>{const i={};let u=T.configList||[];return u.length>0&&u.forEach(C=>{i[C.key]=e&&C.default||""}),i},ue=()=>lbAnnotation.TagUtils.getDefaultResultByConfig(T.inputList||[]),de=({duration:e,hasError:i})=>{(s==null?void 0:s.onLoaded)&&(s==null||s.onLoaded()),R(!1),N(e)},ce=ahooks.useMemoizedFn(e=>{p(__spreadProps(__spreadValues({},a||{}),{regions:((a==null?void 0:a.regions)||[]).filter(i=>i.id!==e)}))}),K=ahooks.useMemoizedFn(e=>{var i;const u=(i=a==null?void 0:a.regions)!=null?i:[],{id:C}=e,q=u.find($=>$.id===C);let W=[];q?W=u.map($=>C===$.id?__spreadValues(__spreadValues({},$),e):$):W=[...u,e],p(__spreadProps(__spreadValues({},a),{regions:W}))}),fe=(e,i)=>{const u=__spreadProps(__spreadValues({},a),{value:__spreadProps(__spreadValues({},a.value),{[i]:e})});p(u)},ve=e=>{const i=__spreadProps(__spreadValues({},a),{tag:e});p(i)},ge=e=>{p(e)},pe=()=>{const e=__spreadProps(__spreadValues({},a),{value:Y(),tag:{},regions:[]});p(e),lbAnnotation.EventBus.emit("clearRegions")},me=e=>{w(e)};return React__default.default.createElement(index$1.AudioClipProvider,null,React__default.default.createElement(antd.Spin,{spinning:o,wrapperClassName:"audio-tool-spinner"},React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container"),style:{height:"100%",userSelect:"none"}},t==null?void 0:t.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement("div",{className:index_module.containerWrapper},React__default.default.createElement("div",{className:index_module.audioWrapper},z&&React__default.default.createElement(index$2,{result:a==null?void 0:a.tag,labelInfoSet:ne,hasPromptLayer:!!(s==null?void 0:s.promptLayer)}),s==null?void 0:s.promptLayer,React__default.default.createElement(index$3.AudioPlayer,__spreadValues({context:{isEdit:s==null?void 0:s.isEdit,count:ae,toolName:EAudioToolName.AudioTextTool,imgIndex:g},drawLayerSlot:j,fileData:I,onLoaded:de,invalid:!b,updateRegion:K,removeRegion:ce,regions:a==null?void 0:a.regions,activeToolPanel:s==null?void 0:s.activeToolPanel,footer:t.footer,isCheck:O},oe))),(F||V)&&React__default.default.createElement(AudioTextToolTextarea,{preContext:Q,result:a,inputDisabled:re,updateText:fe,updateRegion:K,configList:le,autofocus:!1,textConfigurable:F,clipTextConfigurable:V,clipAttributeList:H,clipAttributeConfigurable:G,clipTextList:J,isCheck:O}))),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:S!=null?S:240,style:(m=t.style)==null?void 0:m.sider},React__default.default.createElement(AudioSideBar,{sider:D,config:T,result:a,updateTagResult:ve,updateRegion:K,isEdit:s==null?void 0:s.isEdit,tagConfigurable:z,clipConfigurable:X})),React__default.default.createElement(index$4,null))))};var AudioAnnotate$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(AudioAnnotate);module.exports=AudioAnnotate$1;
1
+ "use strict";var React=require("react"),index$3=require("../audioPlayer/index.js"),dom=require("../../utils/dom.js"),index$4=require("../predictTracking/previewResult/index.js"),es=require("antd/es"),antd=require("antd"),index$5=require("../../constant/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index_module=require("./index.module.scss.js"),index$2=require("./tagResultShow/index.js"),index$1=require("./audioContext/index.js"),index$6=require("./textInput/index.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),annotation=require("../../hooks/annotation.js"),index$7=require("../../views/MainView/sidebar/index.js"),index$8=require("./audioSide/labelSidebar/index.js"),index$9=require("./audioSide/clipSidebar/index.js"),tag=require("../../assets/annotation/audio/tag.svg.js"),tagA=require("../../assets/annotation/audio/tagA.svg.js"),clip=require("../../assets/annotation/audio/clip.svg.js"),clipA=require("../../assets/annotation/audio/clipA.svg.js"),audio=require("../../utils/audio.js"),dataTransform=require("./utils/dataTransform.js"),ahooks=require("ahooks");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,o,r)=>o in t?__defProp(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,__spreadValues=(t,o)=>{for(var r in o||(o={}))__hasOwnProp.call(o,r)&&__defNormalProp(t,r,o[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(o))__propIsEnum.call(o,r)&&__defNormalProp(t,r,o[r]);return t},__spreadProps=(t,o)=>__defProps(t,__getOwnPropDescs(o));const{EAudioToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ToggleAudioOption=({setSideTab:t,sideTab:o})=>{const r=[{tab:"tag",commonSvg:tag,selectedSvg:tagA},{tab:"clip",commonSvg:clip,selectedSvg:clipA}];return React__default.default.createElement("div",{className:index_module.toggleAudioOption},r.map((f,x)=>{const{tab:d,selectedSvg:E,commonSvg:C}=f;return React__default.default.createElement("div",{key:x,className:index_module.option},React__default.default.createElement("img",{className:index_module.icon,src:o===d?E:C,onClick:()=>{o!==d&&t(d)}}))}))},AudioTextToolTextarea=({result:t,inputDisabled:o,updateText:r,configList:f,autofocus:x,preContext:d,isCheck:E,clipAttributeConfigurable:C,clipTextConfigurable:A,textConfigurable:m,updateRegion:S,clipAttributeList:c,clipTextList:v})=>React__default.default.createElement(index$6.default,{isCheck:E,result:t==null?void 0:t.value,textInputDisabled:o,textID:(t==null?void 0:t.id)||0,updateText:r,configList:f,autofocus:!o&&x,preContext:d,regions:t==null?void 0:t.regions,clipAttributeConfigurable:C,clipTextConfigurable:A,textConfigurable:m,updateRegion:S,clipAttributeList:c,clipTextList:v}),AudioSideBar=t=>{var o,r;const{sider:f,config:x,result:d,updateTagResult:E,updateRegion:C,isEdit:A,tagConfigurable:m,clipConfigurable:S}=t;let c=(x==null?void 0:x.inputList)||[],v=(o=d==null?void 0:d.tag)!=null?o:{},s=(r=d==null?void 0:d.regions)!=null?r:[];const[D,j]=React.useState([]),[y,g]=React.useState("tag");React.useEffect(()=>{if(!m&&S){g("clip");return}g("tag")},[m,S]),React.useEffect(()=>(window.addEventListener("keydown",I),()=>{window.removeEventListener("keydown",I)}));const I=n=>{if(m&&S)switch(n.keyCode){case EKeyCode.L:g("tag");break;case EKeyCode.X:g("clip");break}if(y==="tag"){if(!lbAnnotation.CommonToolUtils.hotkeyFilter(n))return;lbAnnotation.CommonToolUtils.isMoveKey(n==null?void 0:n.keyCode)&&n.preventDefault();let l=n.keyCode;if(l&&(l<=57&&l>=49||l<=105&&l>=97)){l>57?l=l-97:l=l-49;const R=D.slice();c.length===1?(T(0,l),j([0,l]),setTimeout(()=>{j([])},500)):R.length===1?(T(R[0],l),j([R[0],l]),setTimeout(()=>{j([])},500)):j([l])}}},T=(n,l)=>{if(n<c.length&&c[n].subSelected&&l<c[n].subSelected.length){const R=c[n].value,a=c[n].isMulti;let L=c[n].subSelected[l].value,M=0;const N=v;for(const b in v)if(b===c[n].value){if(M++,a===!0){const w=N[b].split(";").filter(U=>U!==""),p=w.indexOf(L);p===-1?w.push(L):w.splice(p,1),L=w.join(";")}L===""?delete N[b]:N[b]=L}M===0&&Object.assign(v,{[R]:L}),E(v)}},h=n=>{delete v[n],E(v)},O=m&&S&&React__default.default.createElement(ToggleAudioOption,{setSideTab:g,sideTab:y}),P=y==="tag"&&React__default.default.createElement(index$8.default,{labelInfoSet:m?c:[],labelSelectedList:D,setLabel:T,tagResult:v,clearResult:h,isEdit:A,withPanelTab:!1}),k=y==="clip"&&React__default.default.createElement(index$9,{regions:s,updateRegion:C,useAudioClipStore:index$1.useAudioClipStore});return f?typeof f=="function"?React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},f({toggleAudioOption:O,labelSidebar:P,clipSidebar:k})):f:React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},React__default.default.createElement("div",{className:`${index$7.sidebarCls}__content`},O,P,k))},AudioAnnotate=t=>{var o,r,f,x,d,E,C,A,m;const S=(r=(o=t.style)==null?void 0:o.sider)==null?void 0:r.width,{step:c,stepList:v,audioContext:s,sider:D,drawLayerSlot:j,imgList:y,imgIndex:g,currentData:I,config:T,stepInfo:h,checkMode:O}=t,P=lbAnnotation.CommonToolUtils.getCurrentStepToolAndConfig(c,v),k=index.jsonParser(I.result),{toolInstanceRef:n}=annotation.useCustomToolInstance({basicInfo:k}),[l,R]=React.useState(!0),[a,L]=React.useState(null),[M,N]=React.useState(0),[b,w]=React.useState(!0),p=e=>{if(!e)return;const i=dataTransform.fixData(e);L(i)};React.useEffect(()=>{R(!0)},[g]),React.useEffect(()=>{l===!1&&se()},[l]),React.useEffect(()=>{Z()},[]),React.useEffect(()=>{n.current.exportData=()=>[[a],{duration:M,valid:b}],n.current.setResult=ge,n.current.clearResult=pe,n.current.currentPageResult=a==null?void 0:a.regions,n.current.emit("updatePageNumber"),n.current.setSelectedRegion=U,n.current.setValid=me},[a,b]);const U=e=>{lbAnnotation.EventBus.emit("setSelectedRegion",{id:e,isLoopStatus:!0,playImmediately:!0})},Z=()=>{n.current.emit=e=>{const i=n.current.fns.get(e);i&&i.forEach(u=>{u&&(u==null||u())})},n.current.fns=new Map,n.current.singleOn=(e,i)=>{n.current.fns.set(e,[i])},n.current.on=(e,i)=>{n.current.singleOn(e,i)},n.current.unbindAll=e=>{n.current.fns.delete(e)}},B=React.useMemo(()=>{const e=k[`step_${h==null?void 0:h.step}`];return(e==null?void 0:e.result)||[]},[T,k,h]),{tagConfigurable:z,textConfigurable:F=!0,clipConfigurable:X=!1,clipAttributeConfigurable:G=!1,clipAttributeList:H=[],clipTextConfigurable:V=!1,subAttributeList:ee=[],secondaryAttributeConfigurable:te=!1,inputList:ne=[],configList:oe=[],clipTextList:J=index$1.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=React.useMemo(()=>{if(P)return lbAnnotation.CommonToolUtils.jsonParser(P==null?void 0:P.config)},[P]),le={clipConfigurable:X,clipAttributeConfigurable:G,clipAttributeList:H,clipTextConfigurable:V,subAttributeList:ee,secondaryAttributeConfigurable:te,clipTextList:J},ie=(x=(f=lbAnnotation.CommonToolUtils.jsonParser(I.result))==null?void 0:f.duration)!=null?x:0,ae=b?ie:0,re=!b||l||![F,V].includes(!0)||O;let Q={};if(g!==-1&&(y==null?void 0:y.length)){const e=(d=y[g])==null?void 0:d.preResult,i=(s==null?void 0:s.isEdit)?(E=s==null?void 0:s.stepConfig)==null?void 0:E.loadPreStep:h==null?void 0:h.loadPreStep;if(e&&i){const u=lbAnnotation.CommonToolUtils.jsonParser(e),_=(A=(C=u==null?void 0:u.config)==null?void 0:C.context)!=null?A:{};Object.keys(_).forEach(q=>{q&&_[q]&&(Q[q]={visible:!0,content:_[q],type:q})})}}const se=()=>{(B==null?void 0:B.length)>0?p(B[0]):p({id:lbAnnotation.uuid(),sourceID:"",value:Y(),tag:ue(),regions:[]});const e=audio.isImageValue(y[g].result||"[]");w(e)},Y=(e=!0)=>{const i={};let u=T.configList||[];return u.length>0&&u.forEach(_=>{i[_.key]=e&&_.default||""}),i},ue=()=>lbAnnotation.TagUtils.getDefaultResultByConfig(T.inputList||[]),de=({duration:e,hasError:i})=>{(s==null?void 0:s.onLoaded)&&(s==null||s.onLoaded()),R(!1),N(e)},ce=ahooks.useMemoizedFn(e=>{p(__spreadProps(__spreadValues({},a||{}),{regions:((a==null?void 0:a.regions)||[]).filter(i=>i.id!==e)}))}),K=ahooks.useMemoizedFn(e=>{var i;const u=(i=a==null?void 0:a.regions)!=null?i:[],{id:_}=e,q=u.find($=>$.id===_);let W=[];q?W=u.map($=>_===$.id?__spreadValues(__spreadValues({},$),e):$):W=[...u,e],p(__spreadProps(__spreadValues({},a),{regions:W}))}),fe=(e,i)=>{const u=__spreadProps(__spreadValues({},a),{value:__spreadProps(__spreadValues({},a.value),{[i]:e})});p(u)},ve=e=>{const i=__spreadProps(__spreadValues({},a),{tag:e});p(i)},ge=e=>{p(e)},pe=()=>{const e=__spreadProps(__spreadValues({},a),{value:Y(),tag:{},regions:[]});p(e),lbAnnotation.EventBus.emit("clearRegions")},me=e=>{w(e)};return React__default.default.createElement(index$1.AudioClipProvider,null,React__default.default.createElement(antd.Spin,{spinning:l,wrapperClassName:"audio-tool-spinner"},React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container"),style:{height:"100%",userSelect:"none"}},t==null?void 0:t.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement("div",{className:index_module.containerWrapper},React__default.default.createElement("div",{className:index_module.audioWrapper},z&&React__default.default.createElement(index$2,{result:a==null?void 0:a.tag,labelInfoSet:ne,hasPromptLayer:!!(s==null?void 0:s.promptLayer)}),s==null?void 0:s.promptLayer,React__default.default.createElement(index$3.AudioPlayer,__spreadValues({context:{isEdit:s==null?void 0:s.isEdit,count:ae,toolName:EAudioToolName.AudioTextTool,imgIndex:g},drawLayerSlot:j,fileData:I,onLoaded:de,invalid:!b,updateRegion:K,removeRegion:ce,regions:a==null?void 0:a.regions,activeToolPanel:s==null?void 0:s.activeToolPanel,footer:t.footer,isCheck:O},le))),(F||V)&&React__default.default.createElement(AudioTextToolTextarea,{preContext:Q,result:a,inputDisabled:re,updateText:fe,updateRegion:K,configList:oe,autofocus:!1,textConfigurable:F,clipTextConfigurable:V,clipAttributeList:H,clipAttributeConfigurable:G,clipTextList:J,isCheck:O}))),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:S!=null?S:240,style:(m=t.style)==null?void 0:m.sider},React__default.default.createElement(AudioSideBar,{sider:D,config:T,result:a,updateTagResult:ve,updateRegion:K,isEdit:s==null?void 0:s.isEdit,tagConfigurable:z,clipConfigurable:X})),React__default.default.createElement(index$4,null))))};var AudioAnnotate$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(AudioAnnotate);module.exports=AudioAnnotate$1;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),antd=require("antd"),icons=require("@ant-design/icons"),index$2=require("../../../views/MainView/sidebar/TextToolSidebar/index.js"),audio=require("../../../utils/audio.js"),lbAnnotation=require("@labelbee/lb-annotation"),classNames=require("classnames"),index=require("../audioContext/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next"),index$1=require("../../longText/index.js"),icon_clearSmall_a=require("../../../assets/annotation/common/icon_clearSmall_a.svg.js"),icon_clearSmall=require("../../../assets/annotation/common/icon_clearSmall.svg.js");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,u,n)=>u in l?__defProp(l,u,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[u]=n,__spreadValues=(l,u)=>{for(var n in u||(u={}))__hasOwnProp.call(u,n)&&__defNormalProp(l,n,u[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(u))__propIsEnum.call(u,n)&&__defNormalProp(l,n,u[n]);return l},__spreadProps=(l,u)=>__defProps(l,__getOwnPropDescs(u));const EKeyCode=lbAnnotation.cKeyCode.default,ClearIcon=({onClick:l,title:u,disabled:n})=>{const[T,o]=React.useState(!1);return React__default.default.createElement(antd.Tooltip,{placement:"bottom",title:u},React__default.default.createElement("img",{onMouseEnter:()=>{n||o(!0)},onMouseLeave:()=>o(!1),className:classNames__default.default({[index_module.clearIcon]:!0,[index_module.disabled]:n}),src:T?icon_clearSmall_a:icon_clearSmall,onClick:l}))},SingleTextInput=l=>{var u;const{t:n}=reactI18next.useTranslation(),T=React.useRef(null),[o,y]=React.useState(!1),[_,E]=React.useState(!1),{disabled:s,config:i,result:A,updateText:v,index:x,switchToNextTextarea:L,hasMultiple:S,textID:F,addPlaceholder:p,onFocus:N,onBlur:h,onFocusStyle:C={},extra:b,errorText:I}=l,{maxLength:g}=i,w=A?A[i.key]:"",B=(u=w==null?void 0:w.length)!=null?u:0,k=a=>{v&&(v(a,i.key),i.required&&E(!a))},P=S&&L,f={id:`textInput-${x}`,ref:T,disabled:s,value:w,maxLength:g,autoSize:{minRows:2,maxRows:6},onChange:a=>{const d=a.target.value;k(d)},onFocus:a=>{y(!0),N==null||N(a),a.target.value&&E(!1)},onBlur:a=>{y(!1),h==null||h(a),i.required&&E(!a.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:a=>{const{keyCode:d}=a;if(a.ctrlKey){if(d===EKeyCode.Enter&&a.preventDefault(),p&&[EKeyCode.One,EKeyCode.Two,EKeyCode.Three].includes(d))switch(a.preventDefault(),d){case EKeyCode.One:p("\u4986");break;case EKeyCode.Two:p("\u652B");break;case EKeyCode.Three:p("\u7383");break}}else d===EKeyCode.Tab&&P?(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),L(x)):a.nativeEvent.stopPropagation()}},m=React__default.default.createElement("div",{className:index_module.textAreaFooter},React__default.default.createElement("div",{className:index_module.hotkeyTip},P&&React__default.default.createElement("span",null,"[",n("Switch"),"]Tab"),React__default.default.createElement("span",null,"[",n("TurnPage"),"]Ctrl+Enter")),React__default.default.createElement("div",{className:index_module.wordCount},React__default.default.createElement("span",{className:B>=g?index_module.warning:""},B),"/",React__default.default.createElement("span",null,g)));return React.useEffect(()=>{s&&y(!1)},[s]),React.useEffect(()=>{E(!1)},[F]),React__default.default.createElement("div",{className:index_module.textField},React__default.default.createElement("div",{className:index_module.label},React__default.default.createElement("div",{className:index_module.labelText},React__default.default.createElement("span",{className:classNames__default.default({[index_module.titleText]:!0,[index_module.required]:i.required})},React__default.default.createElement(index$1,{text:i.label,openByText:!0,isToolTips:!0})),React__default.default.createElement(ClearIcon,{onClick:()=>{s||k("")},title:"",disabled:s})),React__default.default.createElement("div",{className:index_module.extra},b)),React__default.default.createElement("div",{className:classNames__default.default({disabled:s,"textarea-outline":!0,"ant-input-focused":o,[index_module.textareaContainer]:!0,[index_module.focus]:o,[index_module.invalid]:_}),style:o?C:{}},React__default.default.createElement(index$2.TextareaWithFooter,{footer:m,textareaProps:f})),I&&React__default.default.createElement("span",{style:{color:"#ff4d4f",lineHeight:"22px"}},I))},TextInput=l=>{const{configList:u,autofocus:n,textID:T,result:o,showText:y,updateText:_,toggleShowText:E,textInputDisabled:s,isCheck:i,isEdit:A,config:v,preContext:x,regions:L=[],textConfigurable:S=!0,clipTextConfigurable:F,clipAttributeConfigurable:p,updateRegion:N,clipAttributeList:h=[],clipTextList:C=index.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=l,{t:b}=reactI18next.useTranslation(),[I,g]=React.useState(0),[w,B]=React.useState(""),k=React.useRef(null),{audioClipState:P}=index.useAudioClipStore(),f=u||[__spreadValues({},audio.DEFAULT_TEXT_CONFIG_ITEM)];let m=L;if(F&&!i){const e=P.selectedRegion.id;m=m.filter(t=>t.id===e)}const a=e=>{setTimeout(()=>{const t=document.getElementById(`textInput-${e}`);t&&(g(e),t.focus(),t.select(),t.scrollIntoView({behavior:"smooth",block:"center"}))})},d=e=>{const t=S?f.length:0,c=F?m.length*C.length:0,r=t+c,D=(e+1)%r;a(D)},H=e=>{e.keyCode===EKeyCode.Tab&&(e.preventDefault(),(f.length>0||F&&C.length>0)&&a(0))},q=e=>{const t=document.getElementById(`textInput-${I}`);if(!(v==null?void 0:v.enablePlaceholderHotkey)||!t||!_)return;const{value:c,selectionStart:r,selectionEnd:D}=t,R=`${c.slice(0,r)}${e}${c.slice(D)}`;_(R,f[I].key),B(e),setTimeout(()=>{t.setSelectionRange(r+1,r+1),t.focus()},0),clearTimeout(k.current),k.current=setTimeout(()=>{B("")},400)};React.useEffect(()=>(A||document.addEventListener("keydown",H),()=>{document.removeEventListener("keydown",H)}),[u]),React.useEffect(()=>{n&&!s&&a(0)},[T]);let O=f;i&&(O=f.filter(e=>(o==null?void 0:o[e.key])!==void 0));const W=React.useMemo(()=>C.reduce((e,t)=>(m.forEach(c=>{c&&e.push(__spreadProps(__spreadValues({},t),{clipTextResult:c}))}),e),[]),[C,m]);return React__default.default.createElement(React__default.default.Fragment,null,(v==null?void 0:v.enablePlaceholderHotkey)&&React__default.default.createElement("div",{className:index_module.placeholderHotkey},React__default.default.createElement("div",{className:index_module.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",React__default.default.createElement(antd.Tooltip,{overlayStyle:{maxWidth:240},title:React__default.default.createElement("div",null,React__default.default.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),React__default.default.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},React__default.default.createElement(icons.QuestionCircleOutlined,{className:index_module.questionIcon}))),React__default.default.createElement(antd.Radio.Group,{value:w},React__default.default.createElement(antd.Radio.Button,{value:"\u4986",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+1"))),React__default.default.createElement(antd.Radio.Button,{value:"\u652B",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+2"))),React__default.default.createElement(antd.Radio.Button,{value:"\u7383",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+3"))))),React__default.default.createElement("div",{className:index_module.textInputContainer},React__default.default.createElement(index.default,{audioContext:x==null?void 0:x.before}),S&&O.map((e,t)=>React__default.default.createElement(SingleTextInput,{config:e,key:t,index:t,result:o,updateText:_,switchToNextTextarea:d,hasMultiple:f.length>1,disabled:s,textID:T,addPlaceholder:q,onFocus:()=>g(t)})),F&&m.length>0&&W.map((e,t)=>{var c;const{clipTextResult:r}=e,{id:D,start:R,end:z,attribute:j}=r,{maxLength:U=3e3,label:K,key:G,required:X}=e,V=r==null?void 0:r[G],Q={[r.id]:V},J={label:`${K!=null?K:b("textTool")}\uFF08${audio.timeFormat(R,"ss.SSS")} - ${audio.timeFormat(z,"ss.SSS")}\uFF09`,key:D,maxLength:U},$=(S?O.length:0)+t,M=audio.getAttributeColor(j,h),Y={color:audio.getAttributeFontColor(j,h),backgroundColor:M},Z=b("LeastCharacterError",{num:1}),ee=X&&V.length<1?Z:void 0,te=(c=audio.getAttributeShowText(j,[{value:"",key:b("NoAttribute")},...h]))!=null?c:"";return React__default.default.createElement(SingleTextInput,{config:J,key:t,index:$,disabled:s,result:Q,updateText:ae=>{N==null||N(__spreadProps(__spreadValues({},r),{[G]:ae}))},switchToNextTextarea:()=>{d($)},hasMultiple:!0,onFocus:()=>g($),onFocusStyle:p?{borderColor:M,boxShadow:`0 0 0 2px ${audio.updateColorOpacity(M,.4)}`}:{},extra:p?React__default.default.createElement("div",{style:Y,className:index_module.attribute},React__default.default.createElement(index$1,{text:te,openByText:!0,isToolTips:!0})):null,errorText:ee})}),React__default.default.createElement(index.default,{audioContext:x==null?void 0:x.after}),E&&React__default.default.createElement("div",{className:index_module.switchItem},b("toggleShowText"),React__default.default.createElement(antd.Switch,{style:{alignSelf:"center"},checked:y,onChange:e=>{E(e)}}))))};exports.ClearIcon=ClearIcon,exports.SingleTextInput=SingleTextInput,exports.default=TextInput;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),antd=require("antd"),icons=require("@ant-design/icons"),index$2=require("../../../views/MainView/sidebar/TextToolSidebar/index.js"),audio=require("../../../utils/audio.js"),lbAnnotation=require("@labelbee/lb-annotation"),classNames=require("classnames"),index=require("../audioContext/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next"),index$1=require("../../longText/index.js"),icon_clearSmall_a=require("../../../assets/annotation/common/icon_clearSmall_a.svg.js"),icon_clearSmall=require("../../../assets/annotation/common/icon_clearSmall.svg.js");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(a,l,u)=>l in a?__defProp(a,l,{enumerable:!0,configurable:!0,writable:!0,value:u}):a[l]=u,__spreadValues=(a,l)=>{for(var u in l||(l={}))__hasOwnProp.call(l,u)&&__defNormalProp(a,u,l[u]);if(__getOwnPropSymbols)for(var u of __getOwnPropSymbols(l))__propIsEnum.call(l,u)&&__defNormalProp(a,u,l[u]);return a},__spreadProps=(a,l)=>__defProps(a,__getOwnPropDescs(l));const EKeyCode=lbAnnotation.cKeyCode.default,ClearIcon=({onClick:a,title:l,disabled:u})=>{const[T,s]=React.useState(!1);return React__default.default.createElement(antd.Tooltip,{placement:"bottom",title:l},React__default.default.createElement("img",{onMouseEnter:()=>{u||s(!0)},onMouseLeave:()=>s(!1),className:classNames__default.default({[index_module.clearIcon]:!0,[index_module.disabled]:u}),src:T?icon_clearSmall_a:icon_clearSmall,onClick:a}))},SingleTextInput=a=>{var l;const{t:u}=reactI18next.useTranslation(),T=React.useRef(null),[s,y]=React.useState(!1),[S,f]=React.useState(!1),{disabled:i,config:r,result:A,updateText:m,index:E,switchToNextTextarea:P,hasMultiple:_,textID:v,addPlaceholder:p,onFocus:N,onBlur:F,onFocusStyle:h={},extra:C,errorText:I}=a,{maxLength:x}=r,B=A?A[r.key]:"",w=(l=B==null?void 0:B.length)!=null?l:0,k=n=>{m&&(m(n,r.key),r.required&&f(!n))},L=_&&P,O={id:`textInput-${E}`,ref:T,disabled:i,value:B,maxLength:x,autoSize:{minRows:2,maxRows:6},onChange:n=>{const d=n.target.value;k(d)},onFocus:n=>{y(!0),N==null||N(n),n.target.value&&f(!1)},onBlur:n=>{y(!1),F==null||F(n),r.required&&f(!n.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:n=>{const{keyCode:d}=n;if(n.ctrlKey){if(d===EKeyCode.Enter&&n.preventDefault(),p&&[EKeyCode.One,EKeyCode.Two,EKeyCode.Three].includes(d))switch(n.preventDefault(),d){case EKeyCode.One:p("\u4986");break;case EKeyCode.Two:p("\u652B");break;case EKeyCode.Three:p("\u7383");break}}else d===EKeyCode.Tab&&L?(n.preventDefault(),n.nativeEvent.stopImmediatePropagation(),P(E)):n.nativeEvent.stopPropagation()}},R=React__default.default.createElement("div",{className:index_module.textAreaFooter},React__default.default.createElement("div",{className:index_module.hotkeyTip},L&&React__default.default.createElement("span",null,"[",u("Switch"),"]Tab"),React__default.default.createElement("span",null,"[",u("TurnPage"),"]Ctrl+Enter")),React__default.default.createElement("div",{className:index_module.wordCount},React__default.default.createElement("span",{className:w>=x?index_module.warning:""},w),"/",React__default.default.createElement("span",null,x)));return React.useEffect(()=>{i&&y(!1)},[i]),React.useEffect(()=>{f(!1)},[v]),React__default.default.createElement("div",{className:index_module.textField},React__default.default.createElement("div",{className:index_module.label},React__default.default.createElement("div",{className:index_module.labelText},React__default.default.createElement("span",{className:classNames__default.default({[index_module.titleText]:!0,[index_module.required]:r.required})},React__default.default.createElement(index$1,{text:r.label,openByText:!0,isToolTips:!0})),React__default.default.createElement(ClearIcon,{onClick:()=>{i||k("")},title:"",disabled:i})),React__default.default.createElement("div",{className:index_module.extra},C)),React__default.default.createElement("div",{className:classNames__default.default({disabled:i,"textarea-outline":!0,"ant-input-focused":s,[index_module.textareaContainer]:!0,[index_module.focus]:s,[index_module.invalid]:S}),style:s?h:{}},React__default.default.createElement(index$2.TextareaWithFooter,{footer:R,textareaProps:O})),I&&React__default.default.createElement("span",{style:{color:"#ff4d4f",lineHeight:"22px"}},I))},TextInput=a=>{const{configList:l,autofocus:u,textID:T,result:s,showText:y,updateText:S,toggleShowText:f,textInputDisabled:i,isCheck:r,isEdit:A,config:m,preContext:E,regions:P=[],textConfigurable:_=!0,clipTextConfigurable:v,clipAttributeConfigurable:p,updateRegion:N,clipAttributeList:F=[],clipTextList:h=index.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=a,{t:C}=reactI18next.useTranslation(),[I,x]=React.useState(0),[B,w]=React.useState(""),k=React.useRef(null),L=React.useRef(null),[O,R]=React.useState(5),[n,d]=React.useState(!1),{audioClipState:J}=index.useAudioClipStore(),b=l||[__spreadValues({},audio.DEFAULT_TEXT_CONFIG_ITEM)];let g=P;if(v&&!r){const e=J.selectedRegion.id;g=g.filter(t=>t.id===e)}const M=e=>{setTimeout(()=>{const t=document.getElementById(`textInput-${e}`);t&&(x(e),t.focus(),t.select(),t.scrollIntoView({behavior:"smooth",block:"center"}))})},V=e=>{const t=_?b.length:0,c=v?g.length*h.length:0,o=t+c,D=(e+1)%o;M(D)},G=e=>{e.keyCode===EKeyCode.Tab&&(e.preventDefault(),(b.length>0||v&&h.length>0)&&M(0))},q=e=>{const t=document.getElementById(`textInput-${I}`);if(!(m==null?void 0:m.enablePlaceholderHotkey)||!t||!S)return;const{value:c,selectionStart:o,selectionEnd:D}=t,$=`${c.slice(0,o)}${e}${c.slice(D)}`;S($,b[I].key),w(e),setTimeout(()=>{t.setSelectionRange(o+1,o+1),t.focus()},0),clearTimeout(k.current),k.current=setTimeout(()=>{w("")},400)};React.useEffect(()=>(A||document.addEventListener("keydown",G),()=>{document.removeEventListener("keydown",G)}),[l]),React.useEffect(()=>{u&&!i&&M(0)},[T]);let j=b;r&&(j=b.filter(e=>(s==null?void 0:s[e.key])!==void 0));const W=React.useMemo(()=>h.reduce((e,t)=>(g.forEach(c=>{c&&e.push(__spreadProps(__spreadValues({},t),{clipTextResult:c}))}),e),[]),[h,g]),Y=()=>{const e=L.current;e&&v&&g.length>0&&r&&e.clientHeight+e.scrollTop+1>=e.scrollHeight&&(d(!0),Z())},Z=()=>{setTimeout(()=>{R(e=>Math.min(e+5,W.length)),d(!1)},300)};return React__default.default.createElement("div",{className:index_module.textInputBox,ref:L,onScroll:Y},React__default.default.createElement("div",{className:index_module.textInputChild},(m==null?void 0:m.enablePlaceholderHotkey)&&React__default.default.createElement("div",{className:index_module.placeholderHotkey},React__default.default.createElement("div",{className:index_module.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",React__default.default.createElement(antd.Tooltip,{overlayStyle:{maxWidth:240},title:React__default.default.createElement("div",null,React__default.default.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),React__default.default.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},React__default.default.createElement(icons.QuestionCircleOutlined,{className:index_module.questionIcon}))),React__default.default.createElement(antd.Radio.Group,{value:B},React__default.default.createElement(antd.Radio.Button,{value:"\u4986",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+1"))),React__default.default.createElement(antd.Radio.Button,{value:"\u652B",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+2"))),React__default.default.createElement(antd.Radio.Button,{value:"\u7383",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+3"))))),React__default.default.createElement("div",{className:index_module.textInputContainer},React__default.default.createElement(index.default,{audioContext:E==null?void 0:E.before}),_&&j.map((e,t)=>React__default.default.createElement(SingleTextInput,{config:e,key:t,index:t,result:s,updateText:S,switchToNextTextarea:V,hasMultiple:b.length>1,disabled:i,textID:T,addPlaceholder:q,onFocus:()=>x(t)})),v&&g.length>0&&React__default.default.createElement(React__default.default.Fragment,null,W.slice(0,O).map((e,t)=>{var c;const{clipTextResult:o}=e,{id:D,start:$,end:ee,attribute:H}=o,{maxLength:te=3e3,label:U,key:X,required:ae}=e,Q=o==null?void 0:o[X],le={[o.id]:Q},ne={label:`${U!=null?U:C("textTool")}\uFF08${audio.timeFormat($,"ss.SSS")} - ${audio.timeFormat(ee,"ss.SSS")}\uFF09`,key:D,maxLength:te},z=(_?j.length:0)+t,K=audio.getAttributeColor(H,F),ue={color:audio.getAttributeFontColor(H,F),backgroundColor:K},re=C("LeastCharacterError",{num:1}),oe=ae&&Q.length<1?re:void 0,se=(c=audio.getAttributeShowText(H,[{value:"",key:C("NoAttribute")},...F]))!=null?c:"";return React__default.default.createElement(SingleTextInput,{config:ne,key:t,index:z,disabled:i,result:le,updateText:ie=>{N==null||N(__spreadProps(__spreadValues({},o),{[X]:ie}))},switchToNextTextarea:()=>{V(z)},hasMultiple:!0,onFocus:()=>x(z),onFocusStyle:p?{borderColor:K,boxShadow:`0 0 0 2px ${audio.updateColorOpacity(K,.4)}`}:{},extra:p?React__default.default.createElement("div",{style:ue,className:index_module.attribute},React__default.default.createElement(index$1,{text:se,openByText:!0,isToolTips:!0})):null,errorText:oe})}),n&&React__default.default.createElement(antd.Spin,{size:"small"})),React__default.default.createElement(index.default,{audioContext:E==null?void 0:E.after}),f&&React__default.default.createElement("div",{className:index_module.switchItem},C("toggleShowText"),React__default.default.createElement(antd.Switch,{style:{alignSelf:"center"},checked:y,onChange:e=>{f(e)}})))))};exports.ClearIcon=ClearIcon,exports.SingleTextInput=SingleTextInput,exports.default=TextInput;
@@ -1 +1 @@
1
- "use strict";var styles={textInputContainer:"index-module_textInputContainer__ES6X3",textField:"index-module_textField__uRcb7",label:"index-module_label__xE6hM",labelText:"index-module_labelText__Zg1c4",titleText:"index-module_titleText__BRM44",required:"index-module_required__iElYl",extra:"index-module_extra__PW5Qk",textareaContainer:"index-module_textareaContainer__dTIv4",textAreaFooter:"index-module_textAreaFooter__h1Vv-",warning:"index-module_warning__NKpW6",hotkeyTip:"index-module_hotkeyTip__BSJ6A",wordCount:"index-module_wordCount__OD4eL",focus:"index-module_focus__H07-Y",invalid:"index-module_invalid__F9RC5",inputCount:"index-module_inputCount__--XiT",notify:"index-module_notify__rYuqq",switchItem:"index-module_switchItem__Q256x",placeholderHotkey:"index-module_placeholderHotkey__0SKPo",title:"index-module_title__YRpw9",questionIcon:"index-module_questionIcon__oK1HK",attribute:"index-module_attribute__g8Vbl",clearIcon:"index-module_clearIcon__ZBZqI",disabled:"index-module_disabled__zqh8C"};module.exports=styles;
1
+ "use strict";var styles={textInputContainer:"index-module_textInputContainer__ES6X3",textField:"index-module_textField__uRcb7",label:"index-module_label__xE6hM",labelText:"index-module_labelText__Zg1c4",titleText:"index-module_titleText__BRM44",required:"index-module_required__iElYl",extra:"index-module_extra__PW5Qk",textareaContainer:"index-module_textareaContainer__dTIv4",textAreaFooter:"index-module_textAreaFooter__h1Vv-",warning:"index-module_warning__NKpW6",hotkeyTip:"index-module_hotkeyTip__BSJ6A",wordCount:"index-module_wordCount__OD4eL",focus:"index-module_focus__H07-Y",invalid:"index-module_invalid__F9RC5",inputCount:"index-module_inputCount__--XiT",notify:"index-module_notify__rYuqq",switchItem:"index-module_switchItem__Q256x",placeholderHotkey:"index-module_placeholderHotkey__0SKPo",title:"index-module_title__YRpw9",questionIcon:"index-module_questionIcon__oK1HK",attribute:"index-module_attribute__g8Vbl",clearIcon:"index-module_clearIcon__ZBZqI",disabled:"index-module_disabled__zqh8C",textInputBox:"index-module_textInputBox__C6pdt",textInputChild:"index-module_textInputChild__SOQT6"};module.exports=styles;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),antd=require("antd"),index$b=require("../invalidPage/index.js"),index$6=require("../imageError/index.js"),index$a=require("../../utils/index.js"),index$d=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index$1=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$2=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$c=require("./progressDot/index.js"),index$7=require("./clipTip/index.js"),index$5=require("./useSwitchHotkey/index.js"),index$3=require("./useAudioCombine/index.js"),index$4=require("./useAudioSegment/index.js"),index$8=require("./combineTip/index.js"),index$9=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js"),reactI18next=require("react-i18next"),useSize=require("../../hooks/useSize.js");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,u,d)=>u in l?__defProp(l,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):l[u]=d,__spreadValues=(l,u)=>{for(var d in u||(u={}))__hasOwnProp.call(u,d)&&__defNormalProp(l,d,u[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(u))__propIsEnum.call(u,d)&&__defNormalProp(l,d,u[d]);return l},__spreadProps=(l,u)=>__defProps(l,__getOwnPropDescs(u));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:l={},onLoaded:u,context:d,invalid:Ne,height:Fe,hideError:ze,onError:re,updateRegion:T,removeRegion:$,regions:x=[],activeToolPanel:Ue,clipConfigurable:Ze,clipTextConfigurable:ne,clipAttributeList:He,clipAttributeConfigurable:oe,secondaryAttributeConfigurable:Ve,subAttributeList:Xe,isCheck:b,hoverRegionId:W,footer:Ke,drawLayerSlot:ie,clipTextList:Ge,lang:ae})=>{var le,se;const{url:O,path:ue}=l,[N,F]=React.useState(!1),[ce,de]=React.useState(!1),[P,Ye]=React.useState(0),[Je,fe]=React.useState(!1),[S,ve]=React.useState(0),o=React.useRef(null),C=React.useRef(null),me=React.useRef(P),z=e=>{me.current=e,Ye(e)},[pe,Qe]=React.useState(0),[j,et]=React.useState(index.audioZoomInfo.defaultValue),y=React.useRef(null),[ge,tt]=React.useState({}),{audioClipState:U,setAudioClipState:B}=index$1.useAudioClipStore(),[Z,H]=React.useState(!1),c=ahooks.useLatest(U),be=ahooks.useLatest(ge);ahooks.useLatest(N);const A=ahooks.useLatest(x),_e=ahooks.useUpdate(),[ye,rt]=React.useState([]),[Ee,nt]=React.useState({}),[ot,Se]=React.useState(""),[he,it]=React.useState({start:0,end:0}),at=useSize(y),lt=React.useMemo(()=>x.filter(e=>{const{start:t,end:r}=he;return e.start>=t&&e.start<=r||e.end>=t&&e.end<=r||e.id===ot}),[x,he]),st=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Re=e=>{e<index.audioZoomInfo.min||e>index.audioZoomInfo.max||(et(e),audio.dispatchResizeEvent(),st())};index$2({container:y.current,target:document.querySelector(`[data-id=${(se=(le=c.current)==null?void 0:le.selectedRegion)==null?void 0:se.id}]`),clipping:Z,zoom:j,zoomHandler:Re});const L=()=>{let e=A.current;const{attributeLockList:t}=c.current;t.length&&(e=e.filter(r=>t.includes(r.attribute))),X(),e.forEach(r=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},r),{drag:!b,resize:!b,color:"rgba(0, 0, 0, 0)"}))}),_e()},m=e=>{var t,r,n,i,s,v,p;const{id:a,loop:f=!0,playImmediately:g=!1,isLoopStatus:I}=e,q=!1;if(a){const w=(n=(r=(t=o.current)==null?void 0:t.regions)==null?void 0:r.list)!=null?n:{};Object.entries(w).forEach(([,R])=>{const{id:k}=R;a===k?R.select():R.cancelSelect()}),B({selectedRegion:{id:a,loop:q},selectedAttribute:(v=(s=(i=A.current)==null?void 0:i.find(R=>R.id===a))==null?void 0:s.attribute)!=null?v:""}),g&&((p=D(a))==null||p.play())}else B({selectedRegion:{}})},{combineInstance:ut}=index$3({waveRef:o,sortByStartRegions:ye,regionMap:Ee,updateRegion:T,removeRegion:$,generateRegions:L,setSelectedRegion:m}),{segmentInstance:ct,onRegionMouseMove:dt,segmentTimeTip:ft}=index$4({waveRef:o,regionMap:Ee,updateRegion:T,removeRegion:$,generateRegions:L,setSelectedRegion:m}),xe={clipTextConfigurable:ne,clipAttributeList:He,clipAttributeConfigurable:oe,clipConfigurable:Ze,secondaryAttributeConfigurable:Ve,subAttributeList:Xe,clipTextList:Ge};React.useEffect(()=>{var e;ae&&((e=lbUtils.i18n)==null||e.changeLanguage(ae))},[]),React.useEffect(()=>{B({selectedAttribute:""})},[oe]),React.useEffect(()=>{V()},[U.selectedAttribute]),React.useEffect(()=>{L()},[U.attributeLockList]),ahooks.useDeepCompareEffect(()=>{B(xe),setTimeout(()=>{Pe()})},[xe]),ahooks.useDeepCompareEffect(()=>{rt(_.sortBy(x,["start"])),nt(x.reduce((e,t)=>{const{id:r}=t;return __spreadProps(__spreadValues({},e),{[r]:t})},{})),b&&L()},[x]),React.useEffect(()=>{m(W?{id:W,loop:!1,playImmediately:!0}:{})},[W]);const Pe=()=>{var e,t;c.current.clipConfigurable?(!b&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),L()):((t=o.current)==null||t.disableDragSelection(),X()),V()},V=()=>{var e,t,r,n,i;let s="";c.current.clipConfigurable?s=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):s="transparent",((r=(t=o==null?void 0:o.current)==null?void 0:t.cursor)==null?void 0:r.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${s}`}))},D=e=>{var t,r,n;return((n=(r=(t=o.current)==null?void 0:t.regions)==null?void 0:r.list)!=null?n:{})[e]},Ce=()=>{var e,t;if(O){const r=((t=(e=ue==null?void 0:ue.split("."))==null?void 0:e.pop())==null?void 0:t.toLowerCase())==="pcm";fe(!1),r?getWebPcm2Wac.getWebPcm2WavBase64(O).then(n=>{we(n)}):we(O)}},we=e=>{var t;e&&(de(!0),z(0),ve(0),(t=o==null?void 0:o.current)==null||t.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},K=e=>{const t=D(e);t&&(H(!1),t==null||t.remove(),$==null||$(e),m({}))},{run:Te}=ahooks.useThrottleFn(m,{wait:100});index$5({sortByStartRegions:ye,setSelectedRegion:m});const vt=e=>{const{start:t,end:r}=be.current;return(t||r)&&e.update(be.current),e},mt=({action:e,id:t,eventDownTime:r})=>{var n,i;if(!c.current.clipConfigurable)return;t&&m({id:t});const s=D((t!=null?t:(n=c.current.selectedRegion)==null?void 0:n.id)||""),v=[];(e==="create"?A.current:(i=A.current)==null?void 0:i.filter(f=>f.id!==s.id)).forEach(f=>{const{start:g,end:I,attribute:q}=f;q===c.current.selectedAttribute&&[g,I].forEach(w=>{v.includes(w)||v.push(w)})});const a=audio.getCanMoveRange(v.sort((f,g)=>f-g),r);o.current.range=a},pt=e=>{V(),setTimeout(()=>{H(!1)});const t=vt(e),{id:r,start:n,end:i}=t;m({id:r,playImmediately:!0});const s={id:r,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};T==null||T(s),_e()},gt=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Fe||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:x,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),t=()=>{var r;z(((r=o==null?void 0:o.current)==null?void 0:r.getCurrentTime())||0)};e.on("ready",()=>{var r;const n=((r=o==null?void 0:o.current)==null?void 0:r.getDuration())||0;ve(n),t(),u==null||u({duration:Math.round(n)}),de(!1),M(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",Y),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",K),lbAnnotation.EventBus.on("setSelectedRegion",Te),e.on("regions-eventDown",mt),Pe()}),e.on("audioprocess",()=>{t()}),e.on("play",()=>{F(!0)}),e.on("pause",()=>{F(!1)}),e.on("finish",()=>{F(!1)}),e.on("seek",()=>{t()}),e.on("error",()=>{fe(!0),u==null||u({hasError:!0}),re==null||re()}),e.on("region-created",r=>{var n;const{id:i,start:s,end:v}=r;if(A.current.find(a=>a.id===i))return;Se(i);const p={id:i,start:utils.decimalReserved(s,3),end:utils.decimalReserved(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const a=lbAnnotation.TagUtils.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);p.subAttribute=a!=null?a:{}}ne&&c.current.clipTextList.forEach((f,g)=>{g===0?Object.assign(p,{text:f==null?void 0:f.default}):Object.assign(p,{[f.key]:f==null?void 0:f.default})}),T==null||T(p)}),e.on("region-updated",(r,n)=>{var i,s,v,p,a,f,g,I,q,w;const R=n==null?void 0:n.action;B({combined:!1,segment:!1}),R==="resize"&&((s=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||s.setStyle({borderStyle:"solid"})),R==="drag"&&((p=(v=o==null?void 0:o.current)==null?void 0:v.cursor)==null||p.setStyle({borderColor:"transparent"}));const k={},J=[],Q={},At=(a=A.current)==null?void 0:a.filter(E=>E.id!==r.id),qt=(I=(g=(f=o.current)==null?void 0:f.regions)==null?void 0:g.list)!=null?I:{};At.forEach(E=>{var $e,Oe;const{element:ee}=($e=qt[E.id])!=null?$e:{},{start:Lt,end:Dt}=E;if(ee){const{x:We,width:Mt}=((Oe=ee.getBoundingClientRect)==null?void 0:Oe.call(ee))||{},It=We+Mt;[We,It].forEach((te,kt)=>{J.includes(te)||(J.push(te),Q[te]=kt===0?Lt:Dt)})}});const{x:ke,width:jt}=((w=(q=r.element).getBoundingClientRect)==null?void 0:w.call(q))||{},Bt=ke+jt;J.forEach(E=>{Math.abs(audio.precisionMinus(E,ke))<5&&(k.start=Q[E]),Math.abs(audio.precisionMinus(E,Bt))<5&&(k.end=Q[E])}),tt(k),Te({id:r.id}),H(!0)}),e.on("region-update-end",r=>{pt(r),Se("")}),e.on("region-contextmenu",(r,n)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){K(r.id);return}m({id:r.id,playImmediately:!0})}}),e.on("region-click",(r,n,i)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),c.current.combined){ut(r);return}if(c.current.segment){ct(r,i);return}m({id:r.id,playImmediately:!0})}}),e.on("region-mousemove",dt),o.current=e},bt=N?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Ae=e=>e?`${parseFloat((e/S*100).toFixed(4))}%`:"0%",qe=Ae(P),_t=Ae(pe),h=()=>{if(!ce)return o==null?void 0:o.current},yt=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},Et=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},M=()=>{var e;(e=h())==null||e.playPause()},je=e=>{var t;switch(e.keyCode){case EKeyCode.Right:yt();break;case EKeyCode.Left:Et();break;case EKeyCode.Space:e.preventDefault(),M();break;case EKeyCode.Delete:if(!b){const{id:r}=((t=c.current)==null?void 0:t.selectedRegion)||{};r&&K(r)}break}},St=e=>{Y(e)},Be=___default.default.throttle(St,50);let G=!1;const Le=()=>{G&&(M(),G=!1),document.removeEventListener("mousemove",Be),document.removeEventListener("mouseup",Le)},ht=e=>{Y(e),N&&(G=!0,M()),document.addEventListener("mousemove",Be),document.addEventListener("mouseup",Le)},Rt=()=>{Ce()};React.useEffect(()=>(gt(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const xt=e=>{var t,r,n;(t=h())==null||t.playPause(),(r=h())==null||r.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",je),()=>{document.removeEventListener("keydown",je)})),React.useEffect(()=>{m({}),Ce()},[O]),React.useEffect(()=>{De()},[at,S,j]);const Pt=()=>{if(y.current&&S){const e=y.current.scrollLeft,t=y.current.clientWidth,r=e/y.current.scrollWidth*S,n=(e+t)/y.current.scrollWidth*S;it({start:r,end:n})}},{run:De}=ahooks.useThrottleFn(Pt,{wait:300}),Me=e=>{var t,r,n,i;if((o==null?void 0:o.current)&&(C==null?void 0:C.current)){const s=(r=(t=o==null?void 0:o.current)==null?void 0:t.getDuration())!=null?r:0,v=(n=C==null?void 0:C.current)==null?void 0:n.getBoundingClientRect();let a=(e.clientX-v.left)/(((i=C==null?void 0:C.current)==null?void 0:i.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},Y=e=>{var t;const r=Me(e);(t=o==null?void 0:o.current)==null||t.skip(r-me.current),z(r)},Ct=e=>{Qe(Me(e))},wt=S?Math.max(S-P,0):0,Tt=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(Ue==="remark"||b),Ie=React__default.default.createElement("div",{className:index_module.audioPlayer},Je&&!ze&&React__default.default.createElement(index$6,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Rt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$7,{getRegionInstanceById:D,clipping:Z}),React__default.default.createElement(index$8,{container:y.current}),React__default.default.createElement(index$9,{segmentTimeTip:ft}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:y,onScroll:()=>De()},React__default.default.createElement("div",{id:"waveform",style:{width:`${j*100}%`},className:index$a.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},Ne&&React__default.default.createElement(index$b,{isAudio:!0}),React__default.default.createElement("div",{ref:C,className:index_module.progress,onMouseDown:ht,onMouseMove:Ct},React__default.default.createElement("div",{className:index$a.classnames({[index_module.radioTooltip]:!0}),style:{left:qe}},audio.formatTime(P)),React__default.default.createElement("div",{className:index$a.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:_t}},audio.formatTime(pe)),React__default.default.createElement(index$c,{playPercentage:qe})),Tt&&(ie==null?void 0:ie({currentTime:P,remainingTime:wt,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:bt,onClick:()=>{M()},className:index$a.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ce})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(P,"ss.SSS")} / -${audio.timeFormat(S-P,"ss.SSS")}`),React__default.default.createElement(index$d.default,{playerType:index$d.EPlayerType.Audio,onChange:e=>{xt(e)}}),React__default.default.createElement(index.default,{onChange:e=>{var t;(t=h())==null||t.pause(),Re(e)},zoom:j}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Ie,lt.map(e=>{const{id:t}=e,r=document.querySelector(`[data-id=${t}]`);return r?React__default.default.createElement(index$f,{el:r,key:t,region:e,edgeAdsorption:ge,clipping:Z,zoom:j,instance:D(t),isCheck:b}):null}),React__default.default.createElement(index$g.default,{footer:Ke})):Ie},WrapAudioPlayer=l=>React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement(AudioPlayer,__spreadValues({},l)));exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext,exports.WrapAudioPlayer=WrapAudioPlayer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),antd=require("antd"),index$b=require("../invalidPage/index.js"),index$6=require("../imageError/index.js"),index$a=require("../../utils/index.js"),index$d=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index$1=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$2=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$c=require("./progressDot/index.js"),index$7=require("./clipTip/index.js"),index$5=require("./useSwitchHotkey/index.js"),index$3=require("./useAudioCombine/index.js"),index$4=require("./useAudioSegment/index.js"),index$8=require("./combineTip/index.js"),index$9=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js"),reactI18next=require("react-i18next"),useSize=require("../../hooks/useSize.js");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,u,d)=>u in l?__defProp(l,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):l[u]=d,__spreadValues=(l,u)=>{for(var d in u||(u={}))__hasOwnProp.call(u,d)&&__defNormalProp(l,d,u[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(u))__propIsEnum.call(u,d)&&__defNormalProp(l,d,u[d]);return l},__spreadProps=(l,u)=>__defProps(l,__getOwnPropDescs(u));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:l={},onLoaded:u,context:d,invalid:Ne,height:Fe,hideError:ze,onError:ne,updateRegion:T,removeRegion:$,regions:x=[],activeToolPanel:Ue,clipConfigurable:Ze,clipTextConfigurable:oe,clipAttributeList:He,clipAttributeConfigurable:ie,secondaryAttributeConfigurable:Ve,subAttributeList:Xe,isCheck:b,hoverRegionId:W,footer:Ke,drawLayerSlot:ae,clipTextList:Ge,lang:le})=>{var se,ue;const{url:O,path:ce}=l,[N,F]=React.useState(!1),[de,z]=React.useState(!1),[P,Ye]=React.useState(0),[Je,fe]=React.useState(!1),[S,ve]=React.useState(0),o=React.useRef(null),C=React.useRef(null),me=React.useRef(P),U=e=>{me.current=e,Ye(e)},[pe,Qe]=React.useState(0),[j,et]=React.useState(index.audioZoomInfo.defaultValue),y=React.useRef(null),[ge,tt]=React.useState({}),{audioClipState:Z,setAudioClipState:B}=index$1.useAudioClipStore(),[H,V]=React.useState(!1),c=ahooks.useLatest(Z),be=ahooks.useLatest(ge);ahooks.useLatest(N);const A=ahooks.useLatest(x),_e=ahooks.useUpdate(),[ye,rt]=React.useState([]),[Ee,nt]=React.useState({}),[ot,Se]=React.useState(""),[he,it]=React.useState({start:0,end:0}),at=useSize(y),lt=React.useMemo(()=>x.filter(e=>{const{start:t,end:r}=he;return e.start>=t&&e.start<=r||e.end>=t&&e.end<=r||e.id===ot}),[x,he]),st=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Re=e=>{e<index.audioZoomInfo.min||e>index.audioZoomInfo.max||(et(e),audio.dispatchResizeEvent(),st())};index$2({container:y.current,target:document.querySelector(`[data-id=${(ue=(se=c.current)==null?void 0:se.selectedRegion)==null?void 0:ue.id}]`),clipping:H,zoom:j,zoomHandler:Re});const L=()=>{let e=A.current;const{attributeLockList:t}=c.current;t.length&&(e=e.filter(r=>t.includes(r.attribute))),K(),e.forEach(r=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},r),{drag:!b,resize:!b,color:"rgba(0, 0, 0, 0)"}))}),_e()},m=e=>{var t,r,n,i,s,v,p;const{id:a,loop:f=!0,playImmediately:g=!1,isLoopStatus:I}=e,q=!1;if(a){const w=(n=(r=(t=o.current)==null?void 0:t.regions)==null?void 0:r.list)!=null?n:{};Object.entries(w).forEach(([,R])=>{const{id:k}=R;a===k?R.select():R.cancelSelect()}),B({selectedRegion:{id:a,loop:q},selectedAttribute:(v=(s=(i=A.current)==null?void 0:i.find(R=>R.id===a))==null?void 0:s.attribute)!=null?v:""}),g&&((p=D(a))==null||p.play())}else B({selectedRegion:{}})},{combineInstance:ut}=index$3({waveRef:o,sortByStartRegions:ye,regionMap:Ee,updateRegion:T,removeRegion:$,generateRegions:L,setSelectedRegion:m}),{segmentInstance:ct,onRegionMouseMove:dt,segmentTimeTip:ft}=index$4({waveRef:o,regionMap:Ee,updateRegion:T,removeRegion:$,generateRegions:L,setSelectedRegion:m}),xe={clipTextConfigurable:oe,clipAttributeList:He,clipAttributeConfigurable:ie,clipConfigurable:Ze,secondaryAttributeConfigurable:Ve,subAttributeList:Xe,clipTextList:Ge};React.useEffect(()=>{var e;le&&((e=lbUtils.i18n)==null||e.changeLanguage(le))},[]),React.useEffect(()=>{B({selectedAttribute:""})},[ie]),React.useEffect(()=>{X()},[Z.selectedAttribute]),React.useEffect(()=>{L()},[Z.attributeLockList]),ahooks.useDeepCompareEffect(()=>{B(xe),setTimeout(()=>{Pe()})},[xe]),ahooks.useDeepCompareEffect(()=>{rt(_.sortBy(x,["start"])),nt(x.reduce((e,t)=>{const{id:r}=t;return __spreadProps(__spreadValues({},e),{[r]:t})},{})),b&&L()},[x]),React.useEffect(()=>{m(W?{id:W,loop:!1,playImmediately:!0}:{})},[W]);const Pe=()=>{var e,t;c.current.clipConfigurable?(!b&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),L()):((t=o.current)==null||t.disableDragSelection(),K()),X()},X=()=>{var e,t,r,n,i;let s="";c.current.clipConfigurable?s=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):s="transparent",((r=(t=o==null?void 0:o.current)==null?void 0:t.cursor)==null?void 0:r.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${s}`}))},D=e=>{var t,r,n;return((n=(r=(t=o.current)==null?void 0:t.regions)==null?void 0:r.list)!=null?n:{})[e]},Ce=()=>{var e,t;if(O){const r=((t=(e=ce==null?void 0:ce.split("."))==null?void 0:e.pop())==null?void 0:t.toLowerCase())==="pcm";fe(!1),r?getWebPcm2Wac.getWebPcm2WavBase64(O).then(n=>{we(n)}):we(O)}},we=e=>{var t;e&&(z(!0),U(0),ve(0),(t=o==null?void 0:o.current)==null||t.load(e))},K=()=>{var e;(e=o.current)==null||e.clearRegions()},G=e=>{const t=D(e);t&&(V(!1),t==null||t.remove(),$==null||$(e),m({}))},{run:Te}=ahooks.useThrottleFn(m,{wait:100});index$5({sortByStartRegions:ye,setSelectedRegion:m});const vt=e=>{const{start:t,end:r}=be.current;return(t||r)&&e.update(be.current),e},mt=({action:e,id:t,eventDownTime:r})=>{var n,i;if(!c.current.clipConfigurable)return;t&&m({id:t});const s=D((t!=null?t:(n=c.current.selectedRegion)==null?void 0:n.id)||""),v=[];(e==="create"?A.current:(i=A.current)==null?void 0:i.filter(f=>f.id!==s.id)).forEach(f=>{const{start:g,end:I,attribute:q}=f;q===c.current.selectedAttribute&&[g,I].forEach(w=>{v.includes(w)||v.push(w)})});const a=audio.getCanMoveRange(v.sort((f,g)=>f-g),r);o.current.range=a},pt=e=>{X(),setTimeout(()=>{V(!1)});const t=vt(e),{id:r,start:n,end:i}=t;m({id:r,playImmediately:!0});const s={id:r,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};T==null||T(s),_e()},gt=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Fe||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:x,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),t=()=>{var r;U(((r=o==null?void 0:o.current)==null?void 0:r.getCurrentTime())||0)};e.on("ready",()=>{var r;const n=((r=o==null?void 0:o.current)==null?void 0:r.getDuration())||0;ve(n),t(),u==null||u({duration:Math.round(n)}),z(!1),M(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",J),lbAnnotation.EventBus.on("clearRegions",K),lbAnnotation.EventBus.on("removeRegionById",G),lbAnnotation.EventBus.on("setSelectedRegion",Te),e.on("regions-eventDown",mt),Pe()}),e.on("audioprocess",()=>{t()}),e.on("play",()=>{F(!0)}),e.on("pause",()=>{F(!1)}),e.on("finish",()=>{F(!1)}),e.on("seek",()=>{t()}),e.on("error",()=>{fe(!0),z(!1),u==null||u({hasError:!0}),ne==null||ne()}),e.on("region-created",r=>{var n;const{id:i,start:s,end:v}=r;if(A.current.find(a=>a.id===i))return;Se(i);const p={id:i,start:utils.decimalReserved(s,3),end:utils.decimalReserved(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const a=lbAnnotation.TagUtils.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);p.subAttribute=a!=null?a:{}}oe&&c.current.clipTextList.forEach((f,g)=>{g===0?Object.assign(p,{text:f==null?void 0:f.default}):Object.assign(p,{[f.key]:f==null?void 0:f.default})}),T==null||T(p)}),e.on("region-updated",(r,n)=>{var i,s,v,p,a,f,g,I,q,w;const R=n==null?void 0:n.action;B({combined:!1,segment:!1}),R==="resize"&&((s=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||s.setStyle({borderStyle:"solid"})),R==="drag"&&((p=(v=o==null?void 0:o.current)==null?void 0:v.cursor)==null||p.setStyle({borderColor:"transparent"}));const k={},Q=[],ee={},At=(a=A.current)==null?void 0:a.filter(E=>E.id!==r.id),qt=(I=(g=(f=o.current)==null?void 0:f.regions)==null?void 0:g.list)!=null?I:{};At.forEach(E=>{var $e,Oe;const{element:te}=($e=qt[E.id])!=null?$e:{},{start:Lt,end:Dt}=E;if(te){const{x:We,width:Mt}=((Oe=te.getBoundingClientRect)==null?void 0:Oe.call(te))||{},It=We+Mt;[We,It].forEach((re,kt)=>{Q.includes(re)||(Q.push(re),ee[re]=kt===0?Lt:Dt)})}});const{x:ke,width:jt}=((w=(q=r.element).getBoundingClientRect)==null?void 0:w.call(q))||{},Bt=ke+jt;Q.forEach(E=>{Math.abs(audio.precisionMinus(E,ke))<5&&(k.start=ee[E]),Math.abs(audio.precisionMinus(E,Bt))<5&&(k.end=ee[E])}),tt(k),Te({id:r.id}),V(!0)}),e.on("region-update-end",r=>{pt(r),Se("")}),e.on("region-contextmenu",(r,n)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){G(r.id);return}m({id:r.id,playImmediately:!0})}}),e.on("region-click",(r,n,i)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),c.current.combined){ut(r);return}if(c.current.segment){ct(r,i);return}m({id:r.id,playImmediately:!0})}}),e.on("region-mousemove",dt),o.current=e},bt=N?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Ae=e=>e?`${parseFloat((e/S*100).toFixed(4))}%`:"0%",qe=Ae(P),_t=Ae(pe),h=()=>{if(!de)return o==null?void 0:o.current},yt=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},Et=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},M=()=>{var e;(e=h())==null||e.playPause()},je=e=>{var t;switch(e.keyCode){case EKeyCode.Right:yt();break;case EKeyCode.Left:Et();break;case EKeyCode.Space:e.preventDefault(),M();break;case EKeyCode.Delete:if(!b){const{id:r}=((t=c.current)==null?void 0:t.selectedRegion)||{};r&&G(r)}break}},St=e=>{J(e)},Be=___default.default.throttle(St,50);let Y=!1;const Le=()=>{Y&&(M(),Y=!1),document.removeEventListener("mousemove",Be),document.removeEventListener("mouseup",Le)},ht=e=>{J(e),N&&(Y=!0,M()),document.addEventListener("mousemove",Be),document.addEventListener("mouseup",Le)},Rt=()=>{Ce()};React.useEffect(()=>(gt(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const xt=e=>{var t,r,n;(t=h())==null||t.playPause(),(r=h())==null||r.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",je),()=>{document.removeEventListener("keydown",je)})),React.useEffect(()=>{m({}),Ce()},[O]),React.useEffect(()=>{De()},[at,S,j]);const Pt=()=>{if(y.current&&S){const e=y.current.scrollLeft,t=y.current.clientWidth,r=e/y.current.scrollWidth*S,n=(e+t)/y.current.scrollWidth*S;it({start:r,end:n})}},{run:De}=ahooks.useThrottleFn(Pt,{wait:300}),Me=e=>{var t,r,n,i;if((o==null?void 0:o.current)&&(C==null?void 0:C.current)){const s=(r=(t=o==null?void 0:o.current)==null?void 0:t.getDuration())!=null?r:0,v=(n=C==null?void 0:C.current)==null?void 0:n.getBoundingClientRect();let a=(e.clientX-v.left)/(((i=C==null?void 0:C.current)==null?void 0:i.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},J=e=>{var t;const r=Me(e);(t=o==null?void 0:o.current)==null||t.skip(r-me.current),U(r)},Ct=e=>{Qe(Me(e))},wt=S?Math.max(S-P,0):0,Tt=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(Ue==="remark"||b),Ie=React__default.default.createElement("div",{className:index_module.audioPlayer},Je&&!ze&&React__default.default.createElement(index$6,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Rt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$7,{getRegionInstanceById:D,clipping:H}),React__default.default.createElement(index$8,{container:y.current}),React__default.default.createElement(index$9,{segmentTimeTip:ft}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:y,onScroll:()=>De()},React__default.default.createElement("div",{id:"waveform",style:{width:`${j*100}%`},className:index$a.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},Ne&&React__default.default.createElement(index$b,{isAudio:!0}),React__default.default.createElement("div",{ref:C,className:index_module.progress,onMouseDown:ht,onMouseMove:Ct},React__default.default.createElement("div",{className:index$a.classnames({[index_module.radioTooltip]:!0}),style:{left:qe}},audio.formatTime(P)),React__default.default.createElement("div",{className:index$a.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:_t}},audio.formatTime(pe)),React__default.default.createElement(index$c,{playPercentage:qe})),Tt&&(ae==null?void 0:ae({currentTime:P,remainingTime:wt,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:bt,onClick:()=>{M()},className:index$a.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:de})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(P,"ss.SSS")} / -${audio.timeFormat(S-P,"ss.SSS")}`),React__default.default.createElement(index$d.default,{playerType:index$d.EPlayerType.Audio,onChange:e=>{xt(e)}}),React__default.default.createElement(index.default,{onChange:e=>{var t;(t=h())==null||t.pause(),Re(e)},zoom:j}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Ie,lt.map(e=>{const{id:t}=e,r=document.querySelector(`[data-id=${t}]`);return r?React__default.default.createElement(index$f,{el:r,key:t,region:e,edgeAdsorption:ge,clipping:H,zoom:j,instance:D(t),isCheck:b}):null}),React__default.default.createElement(index$g.default,{footer:Ke})):Ie},WrapAudioPlayer=l=>React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement(AudioPlayer,__spreadValues({},l)));exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext,exports.WrapAudioPlayer=WrapAudioPlayer;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),classNames=require("classnames"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),index=require("../../utils/index.js"),useSingleBox=require("./hooks/useSingleBox.js"),useSphere=require("./hooks/useSphere.js"),antd=require("antd"),useSize=require("../../hooks/useSize.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js"),index$1=require("./components/PointCloudSizeSlider/index.js"),index$2=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons"),useToolStyle=require("../../hooks/useToolStyle.js");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var classNames__default=_interopDefaultLegacy(classNames),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=(n,a,i)=>a in n?__defProp(n,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[a]=i,__spreadValues=(n,a)=>{for(var i in a||(a={}))__hasOwnProp.call(a,i)&&__defNormalProp(n,i,a[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(a))__propIsEnum.call(a,i)&&__defNormalProp(n,i,a[i]);return n},__spreadProps=(n,a)=>__defProps(n,__getOwnPropDescs(a));const EKeyCode=lbAnnotation.cKeyCode.default,pointCloudID="LABELBEE-POINTCLOUD",PointCloud3DContext=React__default.default.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{},followTopView:()=>{}}),PointCloudViewIcon=({perspectiveView:n})=>{const{isActive:a,setTarget3DView:i}=React.useContext(PointCloud3DContext),d=t=>classNames__default.default({[dom.getClassName("point-cloud-3d-view",t)]:!0,active:a});return React__default.default.createElement("span",{onClick:()=>{i(lbUtils.EPerspectiveView[n])},className:d(n.toLocaleLowerCase())})},PointCloud3DSideBar=({isEnlarge:n})=>{const{reset3DView:a,followTopView:i}=React.useContext(PointCloud3DContext),{t:d}=reactI18next.useTranslation(),t=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Top"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Front"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Left"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Back"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Right"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"LFT"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"RBT"})),p=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(antd.Tooltip,{title:d("CameraFollowTopView")},React__default.default.createElement("span",{onClick:()=>{i()},className:dom.getClassName("point-cloud-3d-view","followTop")})),React__default.default.createElement("span",{onClick:()=>{a()},className:dom.getClassName("point-cloud-3d-view","reset")}));return n?React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebarZoom")},p,t):React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebar")},t,p)},PointCloud3D=({currentData:n,config:a,highlightAttribute:i})=>{var d;const t=React.useContext(PointCloudContext.PointCloudContext),[p,T]=React.useState(!0),[m,g]=React.useState(!1),f=React.useRef(null),{initPointCloud3d:P}=usePointCloudViews.usePointCloudViews(),v=useSize(f),{t:V}=reactI18next.useTranslation(),{value:x}=useToolStyle.useToolStyleContext(),{hiddenText:_}=x||{};React.useEffect(()=>{let e=t.mainViewInstance;e&&e.updateHiddenTextAndRender(_,t.pointCloudBoxList)},[x]),React.useEffect(()=>{!t.mainViewInstance||P==null||P(v)},[v]);const{selectedBox:u}=useSingleBox.useSingleBox(),{selectedSphere:w}=useSphere.useSphere(),[y,h]=React.useState(!0),E=e=>{var o,l;const r=u==null?void 0:u.info;if(r){const s=__spreadValues({},r.center);s.x=s.x-.01,s.z=1e3;const c=e===lbUtils.EPerspectiveView.Top;(o=t.mainViewInstance)==null||o.updateCameraByBox(r,e,c?s:void 0)}w&&((l=t.mainViewInstance)==null||l.updateCameraBySphere(w,e))},b=()=>{var e;(e=t.mainViewInstance)==null||e.resetCamera()},N=()=>{var e,o;const l=(e=t.topViewInstance)==null?void 0:e.pointCloudInstance.camera;l&&((o=t.mainViewInstance)==null||o.applyCameraTarget(l))};React.useEffect(()=>{if(f.current&&(n==null?void 0:n.url)){let e=t.mainViewInstance;!e&&v.width&&(e=new lbAnnotation.PointCloud({container:f.current,isOrthographicCamera:!0,orthographicParams:lbUtils.PointCloudUtils.getDefaultOrthographicParams(v),config:a,hiddenText:_}),e.setHandlerPipe({setSelectedIDs:t.setSelectedIDs,setNeedUpdateCenter:h}),t.setMainViewInstance(e))}},[v,n]),React.useEffect(()=>{var e;if(f.current&&(n==null?void 0:n.url)&&n.result&&t.mainViewInstance){let o=t.mainViewInstance;const l=lbUtils.PointCloudUtils.getBoxParamsFromResultList(n.result);l.forEach(s=>{var c;const C=(c=lbUtils.toolStyleConverter.getColorFromConfig({attribute:s.attribute},__spreadProps(__spreadValues({},a),{attributeConfigurable:!0}),{}))==null?void 0:c.hex;o==null||o.addBoxToSense(s,C)}),o.render(),t.setPointCloudResult(l);const r=lbUtils.PointCloudUtils.getRectParamsFromResultList(n.result);t.setRectList(r),t.setPointCloudValid((e=index.jsonParser(n.result))==null?void 0:e.valid)}},[n,t.mainViewInstance]),React.useEffect(()=>{var e,o,l,r,s,c;const C=(e=u==null?void 0:u.info)==null?void 0:e.id;if(!y){h(!0);return}if(C!==void 0){E(lbUtils.EPerspectiveView.Top);const L=(r=(l=(o=t.topViewInstance)==null?void 0:o.pointCloudInstance)==null?void 0:l.camera.zoom)!=null?r:1;(s=t.mainViewInstance)==null||s.updateCameraZoom(L),(c=t.mainViewInstance)==null||c.setHighlightColor(C)}},[(d=u==null?void 0:u.info)==null?void 0:d.id]),React.useEffect(()=>{var e,o,l,r;if(w){E(lbUtils.EPerspectiveView.Top);const s=(l=(o=(e=t.topViewInstance)==null?void 0:e.pointCloudInstance)==null?void 0:o.camera.zoom)!=null?l:1;(r=t.mainViewInstance)==null||r.updateCameraZoom(s)}},[w]),React.useEffect(()=>(window.addEventListener("keydown",I),()=>{window.removeEventListener("keydown",I)}),[]);const I=e=>{if(e.keyCode===EKeyCode.Esc){g(!1);return}},S=React.useMemo(()=>({reset3DView:b,setTarget3DView:E,isActive:!!u,followTopView:N}),[u,t.mainViewInstance]);React.useEffect(()=>{var e,o,l;const r=t.pointCloudBoxList.filter(s=>s.attribute===i);(r==null?void 0:r.length)>0&&((e=t.mainViewInstance)==null||e.clearHighlightBoxes(),(o=t.mainViewInstance)==null||o.highlightBoxes(r)),r.length===0&&((l=t.mainViewInstance)==null||l.clearHighlightBoxesAndRender())},[i,t.mainViewInstance]);const B=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$1,{onChange:e=>{var o;(o=t.mainViewInstance)==null||o.updatePointSize({customSize:e})}}),React__default.default.createElement("span",{style:{marginRight:8}},V("ShowArrows")),React__default.default.createElement(antd.Switch,{size:"small",checked:p,onChange:e=>{var o;T(e),(o=t.mainViewInstance)==null||o.setShowDirection(e)}}),m&&React__default.default.createElement(PointCloud3DContext.Provider,{value:S},React__default.default.createElement(PointCloud3DSideBar,{isEnlarge:m})));return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-3d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:m}),title:m?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{g(!1)}}),V("3DView")):React__default.default.createElement(index$2,{title:V("3DView"),onClick:()=>{g(!0)}}),toolbar:B},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-content")},!m&&React__default.default.createElement(PointCloud3DContext.Provider,{value:S},React__default.default.createElement(PointCloud3DSideBar,null)),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-view"),id:pointCloudID,ref:f})))};var PointCloud3DView=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud3D);module.exports=PointCloud3DView;
1
+ "use strict";var dom=require("../../utils/dom.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),classNames=require("classnames"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),index=require("../../utils/index.js"),useSingleBox=require("./hooks/useSingleBox.js"),useSphere=require("./hooks/useSphere.js"),antd=require("antd"),useSize=require("../../hooks/useSize.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js"),index$1=require("./components/PointCloudSizeSlider/index.js"),index$2=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons"),useToolStyle=require("../../hooks/useToolStyle.js");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var classNames__default=_interopDefaultLegacy(classNames),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=(n,a,i)=>a in n?__defProp(n,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[a]=i,__spreadValues=(n,a)=>{for(var i in a||(a={}))__hasOwnProp.call(a,i)&&__defNormalProp(n,i,a[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(a))__propIsEnum.call(a,i)&&__defNormalProp(n,i,a[i]);return n},__spreadProps=(n,a)=>__defProps(n,__getOwnPropDescs(a));const EKeyCode=lbAnnotation.cKeyCode.default,pointCloudID="LABELBEE-POINTCLOUD",PointCloud3DContext=React__default.default.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{},followTopView:()=>{}}),PointCloudViewIcon=({perspectiveView:n})=>{const{isActive:a,setTarget3DView:i}=React.useContext(PointCloud3DContext),d=e=>classNames__default.default({[dom.getClassName("point-cloud-3d-view",e)]:!0,active:a});return React__default.default.createElement("span",{onClick:()=>{i(lbUtils.EPerspectiveView[n])},className:d(n.toLocaleLowerCase())})},PointCloud3DSideBar=({isEnlarge:n})=>{const{reset3DView:a,followTopView:i}=React.useContext(PointCloud3DContext),{t:d}=reactI18next.useTranslation(),e=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Top"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Front"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Left"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Back"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Right"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"LFT"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"RBT"})),p=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(antd.Tooltip,{title:d("CameraFollowTopView")},React__default.default.createElement("span",{onClick:()=>{i()},className:dom.getClassName("point-cloud-3d-view","followTop")})),React__default.default.createElement("span",{onClick:()=>{a()},className:dom.getClassName("point-cloud-3d-view","reset")}));return n?React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebarZoom")},p,e):React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebar")},e,p)},PointCloud3D=({currentData:n,config:a,highlightAttribute:i})=>{var d;const e=React.useContext(PointCloudContext.PointCloudContext),[p,y]=React.useState(!0),[m,g]=React.useState(!1),f=React.useRef(null),{initPointCloud3d:P}=usePointCloudViews.usePointCloudViews(),v=useSize(f),{t:V}=reactI18next.useTranslation(),{value:x}=useToolStyle.useToolStyleContext(),{hiddenText:_}=x||{};React.useEffect(()=>{let t=e.mainViewInstance;t&&t.updateHiddenTextAndRender(_,e.pointCloudBoxList)},[x]),React.useEffect(()=>{!e.mainViewInstance||P==null||P(v)},[v]);const{selectedBox:u}=useSingleBox.useSingleBox(),{selectedSphere:w}=useSphere.useSphere(),[b,h]=React.useState(!0),E=t=>{var o,l;const r=u==null?void 0:u.info;if(r){const s=__spreadValues({},r.center);s.x=s.x-.01,s.z=1e3;const c=t===lbUtils.EPerspectiveView.Top;(o=e.mainViewInstance)==null||o.updateCameraByBox(r,t,c?s:void 0)}w&&((l=e.mainViewInstance)==null||l.updateCameraBySphere(w,t))},N=()=>{var t;(t=e.mainViewInstance)==null||t.resetCamera()},B=()=>{var t,o;const l=(t=e.topViewInstance)==null?void 0:t.pointCloudInstance.camera;l&&((o=e.mainViewInstance)==null||o.applyCameraTarget(l))};React.useEffect(()=>{if(f.current&&(n==null?void 0:n.url)){let t=e.mainViewInstance;!t&&v.width&&(t=new lbAnnotation.PointCloud({container:f.current,isOrthographicCamera:!0,orthographicParams:lbUtils.PointCloudUtils.getDefaultOrthographicParams(v),config:a,hiddenText:_}),t.setHandlerPipe({setSelectedIDs:e.setSelectedIDs,setNeedUpdateCenter:h}),e.setMainViewInstance(t))}},[v,n]),React.useEffect(()=>{var t;if(f.current&&(n==null?void 0:n.url)&&n.result&&e.mainViewInstance){let o=e.mainViewInstance;const l=lbUtils.PointCloudUtils.getBoxParamsFromResultList(n.result);l.forEach(s=>{var c;const C=(c=lbUtils.toolStyleConverter.getColorFromConfig({attribute:s.attribute},__spreadProps(__spreadValues({},a),{attributeConfigurable:!0}),{}))==null?void 0:c.hex;o==null||o.addBoxToSense(s,C)}),o.render(),e.setPointCloudResult(l);const r=lbUtils.PointCloudUtils.getRectParamsFromResultList(n.result);e.setRectList(r),e.setPointCloudValid((t=index.jsonParser(n.result))==null?void 0:t.valid)}},[n,e.mainViewInstance]),React.useEffect(()=>{var t,o,l,r,s,c,C;const T=(t=u==null?void 0:u.info)==null?void 0:t.id;if(!b){h(!0);return}if(T!==void 0){E(lbUtils.EPerspectiveView.Top);const q=(r=(l=(o=e.topViewInstance)==null?void 0:o.pointCloudInstance)==null?void 0:l.camera.zoom)!=null?r:1;(s=e.mainViewInstance)==null||s.updateCameraZoom(q)}(c=e.mainViewInstance)==null||c.setHighlightColor(T),(C=e.mainViewInstance)==null||C.render()},[(d=u==null?void 0:u.info)==null?void 0:d.id]),React.useEffect(()=>{var t,o,l,r;if(w){E(lbUtils.EPerspectiveView.Top);const s=(l=(o=(t=e.topViewInstance)==null?void 0:t.pointCloudInstance)==null?void 0:o.camera.zoom)!=null?l:1;(r=e.mainViewInstance)==null||r.updateCameraZoom(s)}},[w]),React.useEffect(()=>(window.addEventListener("keydown",I),()=>{window.removeEventListener("keydown",I)}),[]);const I=t=>{if(t.keyCode===EKeyCode.Esc){g(!1);return}},S=React.useMemo(()=>({reset3DView:N,setTarget3DView:E,isActive:!!u,followTopView:B}),[u,e.mainViewInstance]);React.useEffect(()=>{var t,o,l;const r=e.pointCloudBoxList.filter(s=>s.attribute===i);(r==null?void 0:r.length)>0&&((t=e.mainViewInstance)==null||t.clearHighlightBoxes(),(o=e.mainViewInstance)==null||o.highlightBoxes(r)),r.length===0&&((l=e.mainViewInstance)==null||l.clearHighlightBoxesAndRender())},[i,e.mainViewInstance]);const L=React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$1,{onChange:t=>{var o;(o=e.mainViewInstance)==null||o.updatePointSize({customSize:t})}}),React__default.default.createElement("span",{style:{marginRight:8}},V("ShowArrows")),React__default.default.createElement(antd.Switch,{size:"small",checked:p,onChange:t=>{var o;y(t),(o=e.mainViewInstance)==null||o.setShowDirection(t)}}),m&&React__default.default.createElement(PointCloud3DContext.Provider,{value:S},React__default.default.createElement(PointCloud3DSideBar,{isEnlarge:m})));return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-3d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:m}),title:m?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{g(!1)}}),V("3DView")):React__default.default.createElement(index$2,{title:V("3DView"),onClick:()=>{g(!0)}}),toolbar:L},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-content")},!m&&React__default.default.createElement(PointCloud3DContext.Provider,{value:S},React__default.default.createElement(PointCloud3DSideBar,null)),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-view"),id:pointCloudID,ref:f})))};var PointCloud3DView=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud3D);module.exports=PointCloud3DView;
@@ -1 +1 @@
1
- "use strict";var PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useRotateEdge=require("./hooks/useRotateEdge.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),useSphere=require("./hooks/useSphere.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),useStatus=require("./hooks/useStatus.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),ctx=require("../../store/ctx.js"),useHistory=require("./hooks/useHistory.js"),useAttribute=require("./hooks/useAttribute.js"),useConfig=require("./hooks/useConfig.js"),usePolygon=require("./hooks/usePolygon.js"),useLine=require("./hooks/useLine.js"),useUpdatePointCloudColor=require("./hooks/useUpdatePointCloudColor.js"),reactI18next=require("react-i18next"),ahooks=require("ahooks"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,r,i)=>r in n?__defProp(n,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[r]=i,__spreadValues=(n,r)=>{for(var i in r||(r={}))__hasOwnProp.call(r,i)&&__defNormalProp(n,i,r[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(r))__propIsEnum.call(r,i)&&__defNormalProp(n,i,r[i]);return n},__spreadProps=(n,r)=>__defProps(n,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:n,config:r,checkMode:i,configString:_,imgIndex:w,toolInstanceRef:a,setResourceLoading:f})=>{const e=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:V,selectNextBox:E,selectPrevBox:B,updateSelectedBox:L,deleteSelectedPointCloudBoxAndPolygon:q}=useSingleBox.useSingleBox(),{selectedSphere:b,updatePointCloudSphere:I}=useSphere.useSphere(),{clearAllResult:P,updatePointCloudPattern:O}=useStatus.useStatus(),{copySelectedBoxes:j,pasteSelectedBoxes:A,copiedBoxes:$}=useBoxes.useBoxes({config:r,currentData:n}),{updateRotate:g}=useRotate.useRotate({currentData:n}),{updateRotateEdge:T}=useRotateEdge.useRotateEdge({currentData:n}),{updatePointCloudData:p,topViewSelectedChanged:D}=usePointCloudViews.usePointCloudViews({setResourceLoading:f}),{redo:h,undo:m,pushHistoryWithList:N,pushHistoryUnderUpdatePolygon:H,pushHistoryUnderUpdateLine:K}=useHistory.useHistory(),{syncThreeViewsAttribute:S}=useAttribute.useAttribute(),{syncAllViewsConfig:U,reRenderTopViewRange:R}=useConfig.useConfig(),{selectedPolygon:k}=usePolygon.usePolygon(),{selectedLine:x}=useLine.useLine(),{t:y}=reactI18next.useTranslation(),{updatePointCloudColor:z}=useUpdatePointCloudColor.useUpdatePointCloudColor(f,r),F=ahooks.useLatest(n),v=t=>{var o;const{topViewInstance:s}=e;!s||(o=s.pointCloud2dOperation)==null||o.updateSelectedPolygonsPoints(t)},G=(t,o)=>{var s,u;const{topViewInstance:c,mainViewInstance:l}=e;if(!c)return;const{pointCloud2dOperation:C}=c;switch(t){case"q":{g(e.rectRotateSensitivity);break}case"e":g(-Number(e.rectRotateSensitivity));break;case"g":T(-90);break;case"u":{const d=C.pattern===EPolygonPattern.Normal?lbAnnotation.EToolName.Rect:lbAnnotation.EToolName.Polygon;O(d);const Y={[lbAnnotation.EToolName.Polygon]:y("PolygonPattern"),[lbAnnotation.EToolName.Rect]:y("RectPattern")};antd.message.success(y("ChangePatternMsg",{pattern:Y[d]})),C.clearActiveStatus(),C.clearDrawingStatus()}break;case"+":l==null||l.updatePointSize({zoomIn:!0});break;case"-":l==null||l.updatePointSize({zoomIn:!1});break;case"v":e.setPointCloudValid(!e.valid);break;case"tab":if(o.shiftKey){B();break}E(),o.preventDefault();break;case"f":V();break;case"arrowup":v({y:-1});break;case"arrowdown":v({y:1});break;case"arrowleft":v({x:-1});break;case"arrowright":v({x:1});break;case"delete":q(F.current);break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const d=lbAnnotation.AttributeUtils.getAttributeByKeycode(o.keyCode,r.attributeList);d!==void 0&&((u=a.current)==null||u.setDefaultAttribute(d))}return}}},M=(t,o)=>{switch(t){case"c":j();break;case"v":A();break;case"a":o.preventDefault(),e.selectedAllBoxes();break;case"z":{o.shiftKey?h():m();break}}},W=ahooks.useLatest(t=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(t)||i===!0)return;const o=t.key.toLocaleLowerCase();if(t.ctrlKey){M(o,t);return}G(o,t)});return React.useEffect(()=>{if(!e.topViewInstance)return;const{addEventListener:o}=e.windowKeydownListenerHook;return o(c=>W.current(c))},[e,e.topViewInstance,e.windowKeydownListenerHook]),React.useEffect(()=>{U(r)},[_]),React.useEffect(()=>{(r==null?void 0:r.radius)&&R(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),React.useEffect(()=>{p==null||p()},[w,e.mainViewInstance]),React.useEffect(()=>{e.setHideAttributes([])},[w]),React.useEffect(()=>{a.current.setDefaultAttribute=t=>{var o;if(S(t),z(t),k&&H(__spreadProps(__spreadValues({},k),{attribute:t})),x&&K(__spreadProps(__spreadValues({},x),{attribute:t})),b){const s=I(__spreadProps(__spreadValues({},b),{attribute:t}));e.mainViewInstance&&((o=e.mainViewInstance)==null||o.generateSpheres(s),D({newSelectedSphere:b,newSphereList:s}))}},a.current.setSubAttribute=(t,o)=>{var s;const u=e.selectedPointCloudBox;if(u){const c=(s=u==null?void 0:u.subAttribute)!=null?s:{};u.subAttribute=__spreadProps(__spreadValues({},c),{[t]:o}),L(u),e.mainViewInstance&&e.selectedPointCloudBox&&e.mainViewInstance.generateBox(e.selectedPointCloudBox)}},a.current.clearResult=()=>{P==null||P()},a.current.redo=()=>{h()},a.current.undo=()=>{m()},a.current.setValid=t=>{a.current.valid=t,setTimeout(()=>{e.setPointCloudValid(t),t===!1&&P()})},a.current.setForbidOperation=t=>{var o,s;(s=(o=e.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null||s.setForbidOperation(t),t===!0&&e.setSelectedIDs(void 0)},a.current.setShowDefaultCursor=t=>{var o,s;(s=(o=e.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null||s.setShowDefaultCursor(t)},a.current.asyncData=t=>{setTimeout(()=>{p==null||p(t)})}},[e.pointCloudBoxList,e.pointCloudSphereList,e.selectedID,e.selectedIDs,e.valid,e.polygonList,e.lineList,e.mainViewInstance,e.ptSegmentInstance]),React.useEffect(()=>{a.current.updateSegmentTool=t=>{var o;(o=e.ptSegmentInstance)==null||o.emit(t)},a.current.segmentInstance=e.ptSegmentInstance},[e.ptSegmentInstance]),React.useEffect(()=>{a.current.history={pushHistory:t=>{N({pointCloudBoxList:t})},initRecord:()=>{}}},[]),React.useEffect(()=>{var t;const o=(t=e.topViewInstance)==null?void 0:t.toolInstance;if(!o||i)return;const s=l=>{S(l)},u=l=>{antd.message.error(l)},c=l=>{antd.message.info(l)};return o.on("syncAttribute",s),o.on("messageError",u),o.on("messageInfo",c),()=>{o.unbind("syncAttribute",s),o.unbind("messageError",u),o.unbind("messageInfo",c)}},[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"),useRotateEdge=require("./hooks/useRotateEdge.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),useSphere=require("./hooks/useSphere.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),useStatus=require("./hooks/useStatus.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),ctx=require("../../store/ctx.js"),useHistory=require("./hooks/useHistory.js"),useAttribute=require("./hooks/useAttribute.js"),useConfig=require("./hooks/useConfig.js"),usePolygon=require("./hooks/usePolygon.js"),useLine=require("./hooks/useLine.js"),useUpdatePointCloudColor=require("./hooks/useUpdatePointCloudColor.js"),reactI18next=require("react-i18next"),ahooks=require("ahooks"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,r,i)=>r in n?__defProp(n,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[r]=i,__spreadValues=(n,r)=>{for(var i in r||(r={}))__hasOwnProp.call(r,i)&&__defNormalProp(n,i,r[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(r))__propIsEnum.call(r,i)&&__defNormalProp(n,i,r[i]);return n},__spreadProps=(n,r)=>__defProps(n,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:n,config:r,checkMode:i,configString:V,imgIndex:C,toolInstanceRef:a,setResourceLoading:f})=>{const e=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:_,selectNextBox:E,selectPrevBox:B,updateSelectedBox:L,deleteSelectedPointCloudBoxAndPolygon:q}=useSingleBox.useSingleBox(),{selectedSphere:b,updatePointCloudSphere:I}=useSphere.useSphere(),{clearAllResult:P,updatePointCloudPattern:O}=useStatus.useStatus(),{copySelectedBoxes:j,pasteSelectedBoxes:A,copiedBoxes:$}=useBoxes.useBoxes({config:r,currentData:n}),{updateRotate:g}=useRotate.useRotate({currentData:n}),{updateRotateEdge:T}=useRotateEdge.useRotateEdge({currentData:n}),{updatePointCloudData:p,topViewSelectedChanged:D}=usePointCloudViews.usePointCloudViews({setResourceLoading:f}),{redo:h,undo:m,pushHistoryWithList:H,pushHistoryUnderUpdatePolygon:N,pushHistoryUnderUpdateLine:K}=useHistory.useHistory(),{syncThreeViewsAttribute:S}=useAttribute.useAttribute(),{syncAllViewsConfig:U,reRenderTopViewRange:R}=useConfig.useConfig(),{selectedPolygon:k}=usePolygon.usePolygon(),{selectedLine:x}=useLine.useLine(),{t:y}=reactI18next.useTranslation(),{updatePointCloudColor:z}=useUpdatePointCloudColor.useUpdatePointCloudColor(f,r),F=ahooks.useLatest(n),v=t=>{var o;const{topViewInstance:s}=e;!s||(o=s.pointCloud2dOperation)==null||o.updateSelectedPolygonsPoints(t)},G=(t,o)=>{var s,u;const{topViewInstance:c,mainViewInstance:l}=e;if(!c)return;const{pointCloud2dOperation:w}=c;switch(t){case"q":{g(e.rectRotateSensitivity);break}case"e":g(-Number(e.rectRotateSensitivity));break;case"g":T(-90);break;case"u":{const d=w.pattern===EPolygonPattern.Normal?lbAnnotation.EToolName.Rect:lbAnnotation.EToolName.Polygon;O(d);const Y={[lbAnnotation.EToolName.Polygon]:y("PolygonPattern"),[lbAnnotation.EToolName.Rect]:y("RectPattern")};antd.message.success(y("ChangePatternMsg",{pattern:Y[d]})),w.clearActiveStatus(),w.clearDrawingStatus()}break;case"+":l==null||l.updatePointSize({zoomIn:!0});break;case"-":l==null||l.updatePointSize({zoomIn:!1});break;case"v":e.setPointCloudValid(!e.valid);break;case"tab":if(o.shiftKey){B();break}E(),o.preventDefault();break;case"f":_();break;case"arrowup":v({y:-1});break;case"arrowdown":v({y:1});break;case"arrowleft":v({x:-1});break;case"arrowright":v({x:1});break;case"delete":q(F.current);break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const d=lbAnnotation.AttributeUtils.getAttributeByKeycode(o.keyCode,r.attributeList);d!==void 0&&((u=a.current)==null||u.setDefaultAttribute(d))}return}}},M=(t,o)=>{switch(t){case"c":j();break;case"v":A();break;case"a":o.preventDefault(),e.selectedAllBoxes();break;case"z":{o.shiftKey?h():m();break}}},W=ahooks.useLatest(t=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(t)||i===!0)return;const o=t.key.toLocaleLowerCase();if(t.ctrlKey){M(o,t);return}G(o,t)});return React.useEffect(()=>{if(!e.topViewInstance)return;const{addEventListener:o}=e.windowKeydownListenerHook;return o(c=>W.current(c))},[e,e.topViewInstance,e.windowKeydownListenerHook]),React.useEffect(()=>{U(r)},[V]),React.useEffect(()=>{(r==null?void 0:r.radius)&&R(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),React.useEffect(()=>{p==null||p()},[C,e.mainViewInstance]),React.useEffect(()=>{e.setHideAttributes([])},[C]),React.useEffect(()=>{a.current.setDefaultAttribute=t=>{var o;if(S(t),z(t),k&&N(__spreadProps(__spreadValues({},k),{attribute:t})),x&&K(__spreadProps(__spreadValues({},x),{attribute:t})),b){const s=I(__spreadProps(__spreadValues({},b),{attribute:t}));e.mainViewInstance&&((o=e.mainViewInstance)==null||o.generateSpheres(s),D({newSelectedSphere:b,newSphereList:s}))}},a.current.setSubAttribute=(t,o)=>{var s;const u=e.selectedPointCloudBox;if(u){const c=(s=u==null?void 0:u.subAttribute)!=null?s:{};u.subAttribute=__spreadProps(__spreadValues({},c),{[t]:o}),L(u),e.mainViewInstance&&e.selectedPointCloudBox&&(e.mainViewInstance.generateBox(e.selectedPointCloudBox),e.mainViewInstance.setHighlightColor(u.id),e.mainViewInstance.render())}},a.current.clearResult=()=>{P==null||P()},a.current.redo=()=>{h()},a.current.undo=()=>{m()},a.current.setValid=t=>{a.current.valid=t,setTimeout(()=>{e.setPointCloudValid(t),t===!1&&P()})},a.current.setForbidOperation=t=>{var o,s;(s=(o=e.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null||s.setForbidOperation(t),t===!0&&e.setSelectedIDs(void 0)},a.current.setShowDefaultCursor=t=>{var o,s;(s=(o=e.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null||s.setShowDefaultCursor(t)},a.current.asyncData=t=>{setTimeout(()=>{p==null||p(t)})}},[e.pointCloudBoxList,e.pointCloudSphereList,e.selectedID,e.selectedIDs,e.valid,e.polygonList,e.lineList,e.mainViewInstance,e.ptSegmentInstance]),React.useEffect(()=>{a.current.updateSegmentTool=t=>{var o;(o=e.ptSegmentInstance)==null||o.emit(t)},a.current.segmentInstance=e.ptSegmentInstance},[e.ptSegmentInstance]),React.useEffect(()=>{a.current.history={pushHistory:t=>{H({pointCloudBoxList:t})},initRecord:()=>{}}},[]),React.useEffect(()=>{var t;const o=(t=e.topViewInstance)==null?void 0:t.toolInstance;if(!o||i)return;const s=l=>{S(l)},u=l=>{antd.message.error(l)},c=l=>{antd.message.info(l)};return o.on("syncAttribute",s),o.on("messageError",u),o.on("messageInfo",c),()=>{o.unbind("syncAttribute",s),o.unbind("messageError",u),o.unbind("messageInfo",c)}},[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";Object.defineProperty(exports,"__esModule",{value:!0});var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("../PointCloudContext.js"),useSingleBox=require("./useSingleBox.js"),useSphere=require("./useSphere.js"),_=require("lodash"),ctx=require("../../../store/ctx.js"),StepUtils=require("../../../utils/StepUtils.js"),ToolPointCloudBoxRenderHelper=require("../../../utils/ToolPointCloudBoxRenderHelper.js"),index=require("../../../utils/index.js"),actionCreators=require("../../../store/annotation/actionCreators.js"),useHistory=require("./useHistory.js"),usePolygon=require("./usePolygon.js"),ahooks=require("ahooks"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(o,n,t)=>n in o?__defProp(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,__spreadValues=(o,n)=>{for(var t in n||(n={}))__hasOwnProp.call(n,t)&&__defNormalProp(o,t,n[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(n))__propIsEnum.call(n,t)&&__defNormalProp(o,t,n[t]);return o},__spreadProps=(o,n)=>__defProps(o,__getOwnPropDescs(n)),__async=(o,n,t)=>new Promise((u,p)=>{var e=a=>{try{c(t.next(a))}catch(x){p(x)}},P=a=>{try{c(t.throw(a))}catch(x){p(x)}},c=a=>a.done?u(a.value):Promise.resolve(a.value).then(e,P);c((t=t.apply(o,n)).next())});const DEFAULT_SCOPE=5,DEFAULT_RADIUS=90,INTELLIGENT_FIT_MARGIN=.01,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},topViewPoint2PointCloud=(o,n,t,u,p)=>{const{x:e,y:P}=lbUtils.PointCloudUtils.transferCanvas2World(o,n),{defaultZ:c}=lbUtils.DEFAULT_SPHERE_PARAMS,a={center:{x:e,y:P,z:c},id:o.id},x=u?__spreadValues(__spreadValues({},u),a):__spreadProps(__spreadValues({},a),{attribute:"",valid:!0});return p&&Object.assign(x,p),x},topViewPolygon2PointCloud=(o,n,t,u,p,e)=>{let P=o.pointList.map(B=>lbUtils.PointCloudUtils.transferCanvas2World(B,n)),c=0,a=1,x={};if(t){const B=t.getSensesPointZAxisInPolygon(P,void 0,e);e&&B.fittedCoordinates.length>0&&(P=B.fittedCoordinates),c=(B.maxZ+B.minZ)/2,a=B.maxZ-B.minZ,x={count:B.zCount}}const[f,L,R]=P,D=lbAnnotation.MathUtils.getLineCenterPoint([f,R]),w=lbAnnotation.MathUtils.getLineLength(f,L),V=lbAnnotation.MathUtils.getLineLength(L,R),T=lbAnnotation.MathUtils.getRadiusFromQuadrangle(o.pointList);u&&(c=u.center.z,a=u.depth);const k={center:{x:D.x,y:D.y,z:c},width:e?V+INTELLIGENT_FIT_MARGIN:V,height:e?w+INTELLIGENT_FIT_MARGIN:w,depth:a,rotation:T,id:o.id},O=__spreadValues(u?__spreadValues(__spreadValues({},u),k):__spreadProps(__spreadValues({},k),{attribute:"",valid:!0}),x);p&&Object.assign(O,p);const M=P.map(B=>lbUtils.PointCloudUtils.transferWorld2Canvas(B,n));return{boxParams:O,newPointList:M}},sideViewPoint2PointCloud=(o,n,t)=>{const u={x:o.x-n.x,y:o.y-n.y};return __spreadProps(__spreadValues({},t),{center:{x:t.center.x-u.x,y:t.center.y,z:t.center.z-u.y}})},sideViewPolygon2PointCloud=(o,n,t,u)=>{const[p,e,P]=o.pointList,[c,a,x]=n.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([p,P]),L=lbAnnotation.MathUtils.getLineCenterPoint([c,x]),D={x:{x:f.x-L.x,y:f.y-L.y}.x,y:0,z:f.y-L.y},w=lbAnnotation.MathUtils.getLineLength(p,e),V=lbAnnotation.MathUtils.getLineLength(c,a),T=w-V,k=lbAnnotation.MathUtils.getLineLength(e,P),O=lbAnnotation.MathUtils.getLineLength(a,x),M=k-O,{newBoxParams:B}=u.getNewBoxBySideUpdate(D,M,T,t);return B},backViewPoint2PointCloud=(o,n,t)=>{const u={x:o.x-n.x,y:o.y-n.y};return __spreadProps(__spreadValues({},t),{center:{x:t.center.x,y:t.center.y-u.x,z:t.center.z-u.y}})},backViewPolygon2PointCloud=(o,n,t,u)=>{const[p,e,P]=o.pointList,[c,a,x]=n.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([p,P]),L=lbAnnotation.MathUtils.getLineCenterPoint([c,x]),D={x:{x:f.x-L.x,y:f.y-L.y}.x,y:0,z:f.y-L.y},w=lbAnnotation.MathUtils.getLineLength(p,e),V=lbAnnotation.MathUtils.getLineLength(c,a),T=w-V,k=lbAnnotation.MathUtils.getLineLength(e,P),O=lbAnnotation.MathUtils.getLineLength(a,x),M=k-O;let{newBoxParams:B}=u.getNewBoxByBackUpdate(D,M,T,t);return B},syncSideViewByPoint=(o,n,t,u,p)=>{var e;if(!t)return;const{toolInstance:P,pointCloudInstance:c}=t;c.loadPCDFile(u,(e=p==null?void 0:p.radius)!=null?e:DEFAULT_RADIUS);const{cameraPositionVector:a}=c.updateOrthoCameraBySphere(o,lbUtils.EPerspectiveView.Left);c.setInitCameraPosition(a);const{point2d:x,zoom:f}=c.getSphereSidePoint2DCoordinate(o);c.camera.zoom=f,c.camera.updateProjectionMatrix(),c.render(),P.initPosition(),P.zoomChangeOnCenter(f),P.setResult([__spreadProps(__spreadValues(__spreadValues({},n),x),{valid:o.valid,textAttribute:"",attribute:o.attribute})]),P.setSelectedID(n.id)},synchronizeSideView=(o,n,t,u)=>{if(!t)return;const{pointCloud2dOperation:p,pointCloudInstance:e}=t;e.loadPCDFileByBox(u,o,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:P}=e.updateOrthoCamera(o,lbUtils.EPerspectiveView.Left);e.setInitCameraPosition(P);const{polygon2d:c,zoom:a}=e.getBoxSidePolygon2DCoordinate(o);e.camera.zoom=a,e.camera.updateProjectionMatrix(),e.render(),p.initPosition(),p.zoomChangeOnCenter(a),p.setResultAndSelectedID([{id:n.id,valid:o.valid,pointList:c,textAttribute:"",isRect:!0,attribute:o.attribute}],n.id)},syncBackViewByPoint=(o,n,t,u,p)=>{var e;if(!t)return;const{toolInstance:P,pointCloudInstance:c}=t;c.loadPCDFile(u,(e=p==null?void 0:p.radius)!=null?e:DEFAULT_RADIUS);const{cameraPositionVector:a}=c.updateOrthoCameraBySphere(o,lbUtils.EPerspectiveView.Back);c.setInitCameraPosition(a);const{point2d:x,zoom:f}=c.getSphereBackPoint2DCoordinate(o);c.camera.zoom=f,c.camera.updateProjectionMatrix(),c.render(),P.initPosition(),P.zoomChangeOnCenter(f),P.setResult([__spreadProps(__spreadValues(__spreadValues({},n),x),{valid:o.valid,textAttribute:"",attribute:o.attribute})]),P.setSelectedID(n.id)},synchronizeBackView=(o,n,t,u)=>{if(!t)return;const{pointCloud2dOperation:p,pointCloudInstance:e}=t;e.loadPCDFileByBox(u,o,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:P}=e.updateOrthoCamera(o,lbUtils.EPerspectiveView.Back);e.setInitCameraPosition(P);const{polygon2d:c,zoom:a}=e.getBoxBackPolygon2DCoordinate(o);e.camera.zoom=a,e.camera.updateProjectionMatrix(),e.render(),p.initPosition(),p.zoomChangeOnCenter(a),p.setResultAndSelectedID([{id:n.id,valid:o.valid,pointList:c,textAttribute:"",isRect:!0,attribute:o.attribute}],n.id)},syncTopViewByPoint=(o,n,t,u)=>{if(!t||!u)return;u.generateSphere(o),u.updateCameraBySphere(o,lbUtils.EPerspectiveView.Top),u.render();const{toolInstance:p,pointCloudInstance:e}=t,{point2d:P}=e.getSphereTopPoint2DCoordinate(o),c=[...p.pointList].map(a=>a.id===n.id?__spreadProps(__spreadValues(__spreadValues({},n),P),{valid:o.valid,textAttribute:"",attribute:o.attribute}):a);p.setResult(c),p.setSelectedID(n.id)},synchronizeTopView=(o,n,t,u)=>{var p,e;if(!t||!u)return;u.generateBox(o),u.render();const{pointCloud2dOperation:P,pointCloudInstance:c}=t,{polygon2d:a}=c.getBoxTopPolygon2DCoordinate(o),x=[...P.polygonList],f=x.find(L=>L.id===n.id);f?(f.pointList=a,f.valid=(p=o.valid)!=null?p:!0):x.push({id:n.id,pointList:a,textAttribute:"",isRect:!0,valid:(e=o.valid)!=null?e:!0}),P.setResultAndSelectedID(x,n.id)},usePointCloudViews=o=>{const n=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:t,sideViewInstance:u,backViewInstance:p,mainViewInstance:e,addPointCloudBox:P,addPointCloudSphere:c,setSelectedIDs:a,selectedIDs:x,pointCloudBoxList:f,pointCloudSphereList:L,hideAttributes:R,setHighlight2DDataList:D,cuboidBoxIn2DView:w,imageSizes:V,history:T,linkageImageNameRectMap:k}=n,{addHistory:O,initHistory:M,pushHistoryUnderUpdatePolygon:B}=useHistory.useHistory(),{selectedPolygon:ot}=usePolygon.usePolygon(),{getPointCloudSphereByID:nt,updatePointCloudSphere:Y,selectedSphere:W}=useSphere.useSphere(),{currentData:j,config:y}=ctx.useSelector(s=>{const{stepList:i,step:d,imgList:l,imgIndex:r}=s.annotation;return{currentData:l[r],config:index.jsonParser(StepUtils.getCurrentStepInfo(d,i).config)}}),z=ctx.useDispatch(),it=ahooks.useLatest(w),st=ahooks.useLatest(k),lt=React.useCallback((s,i)=>{const d=st.current,l=i.id;return s.filter(g=>{if(!g)return!1;const C=d.get(g.imageName);return C===void 0?!0:Boolean(C.get(l))})},[]),J=s=>{const{enableAutoMap2DRect:i=!1}=y;if(!it.current||i){const{mappingImgList:d=[]}=j;index.generatePointCloudBoxRects({pointCloudBox:s,mappingImgList:d,imageSizes:V},{prepareRectsFn:lt})}},{selectedBox:U,updateSelectedBox:rt,updateSelectedBoxes:Q,getPointCloudByID:at}=useSingleBox.useSingleBox({generateRects:J}),K=U==null?void 0:U.info;if(!t||!u||!p)return{topViewAddSphere:()=>{},topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:X}=t,dt=s=>{e==null||e.generateSphere(s),e==null||e.controls.update(),e==null||e.render()},ut=({newPoint:s,size:i,zoom:d,trackConfigurable:l})=>{var r;const g={attribute:(r=t.toolInstance.defaultAttribute)!=null?r:""};l===!0&&Object.assign(g,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:[],extraSphereList:L})});const C=topViewPoint2PointCloud(s,i,X,void 0,g);a(s.id);const h=c(C);q(PointCloudView.Top,s,C,d,h,y),O({newSphereParams:C})},ct=({polygon:s,size:i,imgList:d,trackConfigurable:l,zoom:r,intelligentFit:g})=>{var C,h,m;const b={attribute:(C=t.toolInstance.defaultAttribute)!=null?C:""};l===!0&&Object.assign(b,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:f,extraSphereList:L})});const S=t==null?void 0:t.toolInstance,I=__spreadValues({},s);let{boxParams:v,newPointList:A}=topViewPolygon2PointCloud(I,i,X,void 0,b,g);v=z(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[v],stepConfig:y,action:"viewUpdateBox"}))[0],g&&(A==null?void 0:A.length)&&(I.pointList=A);const E=R.includes(I.attribute);J(v);const F=P(v),Z=(h=n==null?void 0:n.polygonList)!=null?h:[];v.subAttribute=lbAnnotation.TagUtils.getDefaultResultByConfig((y==null?void 0:y.secondaryAttributeConfigurable)?(m=y==null?void 0:y.inputList)!=null?m:[]:[]),t==null||t.updatePolygonList(F!=null?F:[],Z),E?a([]):(a(v.id),S.selection.setSelectedIDs(I.id),N({omitView:PointCloudView.Top,polygon:I,boxParams:v,zoom:r,newPointCloudBoxList:F}),g&&synchronizeTopView(v,I,t,e)),O({newBoxParams:v})},pt=s=>{const{boxID:i,imageName:d,width:l,height:r,x:g,y:C}=s,h=f.find(v=>v.id===i);if(!(h==null?void 0:h.rects)||!h.rects.find(v=>v.imageName===d))return;const b=h.rects.map(v=>v.imageName===d?__spreadProps(__spreadValues({},v),{width:l,height:r,x:g,y:C}):v),S=__spreadProps(__spreadValues({},h),{rects:b}),I=f.map(v=>v.id===i?S:v);return t==null||t.updatePolygonList(I!=null?I:[]),I},gt=s=>{const{boxID:i,imageName:d}=s,l=f.find(h=>h.id===i);if(!(l==null?void 0:l.rects))return;const r=l.rects.filter(h=>h.imageName!==d),g=__spreadProps(__spreadValues({},l),{rects:r}),C=f.map(h=>h.id===i?g:h);return t==null||t.updatePolygonList(C!=null?C:[]),C},Pt=({newSelectedBox:s,newPointCloudList:i,newSelectedSphere:d,newSphereList:l})=>{var r;const g=t==null?void 0:t.toolInstance;if(!(x.length===0||!g)){if(s||(U==null?void 0:U.info)){const C=s!=null?s:U==null?void 0:U.info;(r=g==null?void 0:g.selection)==null||r.setSelectedIDs(x[0]);const h=g.selectedPolygon;if(x.length===1&&C){N({omitView:PointCloudView.Top,polygon:h,boxParams:C,newPointCloudBoxList:i});return}}if((d||W)&&x.length===1){const C=d!=null?d:W;g.setSelectedID(x[0]);const h=g.selectedPoint;C&&q(PointCloudView.Top,h,C,void 0,l,y)}}},$=(s,i,d)=>{if(K){let l,r;switch(d){case PointCloudView.Back:l=backViewPolygon2PointCloud;break;case PointCloudView.Side:l=sideViewPolygon2PointCloud;break;default:l=sideViewPolygon2PointCloud;break}if(r=l(s,i,K,u.pointCloudInstance),e){const{count:b}=e.getSensesPointZAxisInPolygon(lbAnnotation.getCuboidFromPointCloudBox(r).polygonPointList,[r.center.z-r.depth/2,r.center.z+r.depth/2]);r=__spreadProps(__spreadValues({},r),{count:b})}const C=z(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[r],stepConfig:y,action:"viewUpdateBox"}))[0],h=r.valid!==C.valid;r=C;const m=rt(r);return r=m.find(b=>b.id===r.id),N({omitView:h?void 0:d,polygon:s,boxParams:r,newPointCloudBoxList:m}),m}},tt=(s,i,d)=>{if(W){let l,r;switch(d){case PointCloudView.Back:l=backViewPoint2PointCloud;break;case PointCloudView.Side:l=sideViewPoint2PointCloud;break;default:l=sideViewPoint2PointCloud;break}r=l(s,i,W);const g=Y(r);return q(d,s,r,void 0,g,y),g}},Ct=(s,i)=>{tt(s,i,PointCloudView.Side)},ft=(s,i)=>{tt(s,i,PointCloudView.Back)},ht=(s,i)=>{$(s,i,PointCloudView.Side)},xt=(s,i)=>{$(s,i,PointCloudView.Back)},vt=(s,i)=>{const d=nt(s.id),l=topViewPoint2PointCloud(s,i,X,d),r=Y(l);q(PointCloudView.Top,s,l,void 0,r,y)},Lt=(s,i)=>{if(ot){const l=__spreadValues({},s[0].newPolygon);l.pointList=l.pointList.map(r=>lbUtils.PointCloudUtils.transferCanvas2World(r,i)),B(l);return}let d=s.map(({newPolygon:l})=>{const r=at(l.id),{boxParams:g}=topViewPolygon2PointCloud(l,i,t.pointCloudInstance,r);return g});if(d=z(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:d,stepConfig:y,action:"viewUpdateBox"})),d.length===1){const{newPolygon:l}=s[0],r=Q(d);N({polygon:l,boxParams:d[0],newPointCloudBoxList:r})}else{const l=Q(d);l&&n.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.MultiMove,l)}},yt=s=>{var i,d,l,r,g;if(U){const C=Number(s.widthDefault),h=Number(s.depthDefault),m=Number(s.heightDefault),b=U==null?void 0:U.info.trackID,I=((i=t==null?void 0:t.toolInstance)==null?void 0:i.polygonList).find(G=>(G==null?void 0:G.trackID)===b),v={width:(l=(d=t==null?void 0:t.toolInstance)==null?void 0:d.basicImgInfo)==null?void 0:l.width,height:(g=(r=t==null?void 0:t.toolInstance)==null?void 0:r.basicImgInfo)==null?void 0:g.height},A=I.pointList.map(G=>lbUtils.PointCloudUtils.transferCanvas2World(G,v)),H=lbAnnotation.MathUtils.getModifiedRectangleCoordinates(A,m,C),E=H[0],F=H[2],Z=lbAnnotation.MathUtils.getLineCenterPoint([E,F]),mt=U.info.center.z-U.info.depth/2,et=__spreadProps(__spreadValues({},U.info),{center:{x:Z.x,y:Z.y,z:mt+h/2},width:C,height:m,depth:h,valid:!0}),Bt=Q([et]);N({omitView:PointCloudView["3D"],polygon:I,boxParams:et,newPointCloudBoxList:Bt})}},q=(s,i,d,l,r,g)=>__async(void 0,null,function*(){const C=j==null?void 0:j.url,h={[PointCloudView.Side]:()=>{syncSideViewByPoint(d,i,u,C,g)},[PointCloudView.Back]:()=>{p&&syncBackViewByPoint(d,i,p,C,g)},[PointCloudView.Top]:()=>{syncTopViewByPoint(d,i,t,e)}};Object.keys(h).forEach(m=>{m!==s&&h[m]()}),l&&(e==null||e.updateCameraZoom(l)),dt(d)}),N=(s,i=ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Default)=>{const{omitView:d,polygon:l,boxParams:r,zoom:g,newPointCloudBoxList:C}=s,h=j==null?void 0:j.url;C&&n.syncAllViewPointCloudColor(i,C);const m={[PointCloudView.Side]:()=>{synchronizeSideView(r,l,u,h)},[PointCloudView.Back]:()=>{p&&synchronizeBackView(r,l,p,h)},[PointCloudView.Top]:()=>{synchronizeTopView(r,l,t,e)}};Object.keys(m).forEach(b=>{b!==d&&m[b]()}),g&&(e==null||e.updateCameraZoom(g))};return{topViewAddSphere:ut,topViewAddBox:ct,topViewSelectedChanged:Pt,topViewUpdatePoint:vt,sideViewUpdatePoint:Ct,backViewUpdatePoint:ft,topViewUpdateBox:Lt,sideViewUpdateBox:ht,backViewUpdateBox:xt,syncPointCloudViews:N,syncPointCloudPoint:q,pointCloudBoxListUpdated:s=>{t.updatePolygonList(s),e==null||e.generateBoxes(s)},initPointCloud3d:s=>{if(!e)return;const i=lbUtils.PointCloudUtils.getDefaultOrthographicParams(s);e.initOrthographicCamera(i),e.initRenderer(),e.render()},updatePointCloudData:(...s)=>__async(void 0,[...s],function*(i=j){var d,l,r,g,C,h,m,b;if(!(i==null?void 0:i.url)||!e)return;D([]),actionCreators.SetAnnotationLoading(z,!0),actionCreators.SetLoadPCDFileLoading(z,!0),(d=o==null?void 0:o.setResourceLoading)==null||d.call(o,!0),yield e.loadPCDFile(i.url,(l=y==null?void 0:y.radius)!=null?l:DEFAULT_RADIUS),e==null||e.clearAllBox(),e==null||e.clearAllSphere();let S=[],I=[],v=[],A=[];e.updateTopCamera();const H=(g=(r=index.jsonParser(i.result))==null?void 0:r.valid)!=null?g:!0;if(n.setPointCloudValid(H),(C=n.sideViewInstance)==null||C.clearAllData(),(h=n.backViewInstance)==null||h.clearAllData(),i.result){if(S=lbUtils.PointCloudUtils.getBoxParamsFromResultList(i.result),(S==null?void 0:S.length)>0&&i.isPreResult&&(y==null?void 0:y.lowerLimitPointsNumInBox)>0){S=yield e==null?void 0:e.filterPreResult(i.url,y,S);const E=index.jsonParser(i.result);E[lbUtils.POINT_CLOUD_DEFAULT_STEP].result=S,i.result=JSON.stringify(E),n.setPointCloudResult(S)}v=lbUtils.PointCloudUtils.getPolygonListFromResultList(i.result),I=lbUtils.PointCloudUtils.getLineListFromResultList(i.result),A=lbUtils.PointCloudUtils.getSphereParamsFromResultList(i.result),t.updateData(i.url,i.result,{radius:(m=y==null?void 0:y.radius)!=null?m:DEFAULT_RADIUS}),e==null||e.generateBoxes(S),e==null||e.generateSpheres(A),yield n.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Default,S,[])}M({pointCloudBoxList:S,polygonList:v,lineList:I,pointCloudSphereList:A}),actionCreators.SetAnnotationLoading(z,!1),actionCreators.SetLoadPCDFileLoading(z,!1),(b=o==null?void 0:o.setResourceLoading)==null||b.call(o,!1)}),updateViewsByDefaultSize:yt,generateRects:J,update2DViewRect:pt,remove2DViewRect:gt}},useSyncRectPositionDimensionToPointCloudList=()=>{const{pointCloudBoxList:o,rectList:n,setPointCloudResult:t}=React.useContext(PointCloudContext.PointCloudContext),u=ahooks.useLatest(o),p=ahooks.useLatest(n);return{syncToPointCloudBoxList:React.useCallback(()=>{const P=u.current,c=p.current;if(c.length===0)return null;const a=new Map,x=new Set;if(c.filter(f=>f.extId!==void 0).forEach(f=>{const L=f.extId,R=f.imageName,D=_.pick(f,["x","y","width","height"]);let w=a.get(L);w||(w=new Map,a.set(L,w)),w.set(R,D),x.add(L)}),a.size){const f=P.map(L=>{var R;const D=L.id;if(x.has(D)){const w=__spreadValues({},L);return(R=w.rects)==null||R.forEach(V=>{var T;const k=V.imageName;Object.assign(V,(T=a.get(D))==null?void 0:T.get(k))}),w}return L});return t(f),f}return null},[])}};exports.syncBackViewByPoint=syncBackViewByPoint,exports.syncSideViewByPoint=syncSideViewByPoint,exports.syncTopViewByPoint=syncTopViewByPoint,exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,exports.topViewPoint2PointCloud=topViewPoint2PointCloud,exports.topViewPolygon2PointCloud=topViewPolygon2PointCloud,exports.usePointCloudViews=usePointCloudViews,exports.useSyncRectPositionDimensionToPointCloudList=useSyncRectPositionDimensionToPointCloudList;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("../PointCloudContext.js"),useSingleBox=require("./useSingleBox.js"),useSphere=require("./useSphere.js"),_=require("lodash"),ctx=require("../../../store/ctx.js"),StepUtils=require("../../../utils/StepUtils.js"),ToolPointCloudBoxRenderHelper=require("../../../utils/ToolPointCloudBoxRenderHelper.js"),index=require("../../../utils/index.js"),actionCreators=require("../../../store/annotation/actionCreators.js"),useHistory=require("./useHistory.js"),usePolygon=require("./usePolygon.js"),ahooks=require("ahooks"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(o,n,t)=>n in o?__defProp(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,__spreadValues=(o,n)=>{for(var t in n||(n={}))__hasOwnProp.call(n,t)&&__defNormalProp(o,t,n[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(n))__propIsEnum.call(n,t)&&__defNormalProp(o,t,n[t]);return o},__spreadProps=(o,n)=>__defProps(o,__getOwnPropDescs(n)),__async=(o,n,t)=>new Promise((a,p)=>{var e=d=>{try{c(t.next(d))}catch(x){p(x)}},P=d=>{try{c(t.throw(d))}catch(x){p(x)}},c=d=>d.done?a(d.value):Promise.resolve(d.value).then(e,P);c((t=t.apply(o,n)).next())});const DEFAULT_SCOPE=5,DEFAULT_RADIUS=90,INTELLIGENT_FIT_MARGIN=.01,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},topViewPoint2PointCloud=(o,n,t,a,p)=>{const{x:e,y:P}=lbUtils.PointCloudUtils.transferCanvas2World(o,n),{defaultZ:c}=lbUtils.DEFAULT_SPHERE_PARAMS,d={center:{x:e,y:P,z:c},id:o.id},x=a?__spreadValues(__spreadValues({},a),d):__spreadProps(__spreadValues({},d),{attribute:"",valid:!0});return p&&Object.assign(x,p),x},topViewPolygon2PointCloud=(o,n,t,a,p,e)=>{let P=o.pointList.map(B=>lbUtils.PointCloudUtils.transferCanvas2World(B,n)),c=0,d=1,x={};if(t){const B=t.getSensesPointZAxisInPolygon(P,void 0,e);e&&B.fittedCoordinates.length>0&&(P=B.fittedCoordinates),c=(B.maxZ+B.minZ)/2,d=B.maxZ-B.minZ,x={count:B.zCount}}const[f,L,R]=P,D=lbAnnotation.MathUtils.getLineCenterPoint([f,R]),w=lbAnnotation.MathUtils.getLineLength(f,L),V=lbAnnotation.MathUtils.getLineLength(L,R),T=lbAnnotation.MathUtils.getRadiusFromQuadrangle(o.pointList);a&&(c=a.center.z,d=a.depth);const k={center:{x:D.x,y:D.y,z:c},width:e?V+INTELLIGENT_FIT_MARGIN:V,height:e?w+INTELLIGENT_FIT_MARGIN:w,depth:d,rotation:T,id:o.id},O=__spreadValues(a?__spreadValues(__spreadValues({},a),k):__spreadProps(__spreadValues({},k),{attribute:"",valid:!0}),x);p&&Object.assign(O,p);const M=P.map(B=>lbUtils.PointCloudUtils.transferWorld2Canvas(B,n));return{boxParams:O,newPointList:M}},sideViewPoint2PointCloud=(o,n,t)=>{const a={x:o.x-n.x,y:o.y-n.y};return __spreadProps(__spreadValues({},t),{center:{x:t.center.x-a.x,y:t.center.y,z:t.center.z-a.y}})},sideViewPolygon2PointCloud=(o,n,t,a)=>{const[p,e,P]=o.pointList,[c,d,x]=n.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([p,P]),L=lbAnnotation.MathUtils.getLineCenterPoint([c,x]),D={x:{x:f.x-L.x,y:f.y-L.y}.x,y:0,z:f.y-L.y},w=lbAnnotation.MathUtils.getLineLength(p,e),V=lbAnnotation.MathUtils.getLineLength(c,d),T=w-V,k=lbAnnotation.MathUtils.getLineLength(e,P),O=lbAnnotation.MathUtils.getLineLength(d,x),M=k-O,{newBoxParams:B}=a.getNewBoxBySideUpdate(D,M,T,t);return B},backViewPoint2PointCloud=(o,n,t)=>{const a={x:o.x-n.x,y:o.y-n.y};return __spreadProps(__spreadValues({},t),{center:{x:t.center.x,y:t.center.y-a.x,z:t.center.z-a.y}})},backViewPolygon2PointCloud=(o,n,t,a)=>{const[p,e,P]=o.pointList,[c,d,x]=n.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([p,P]),L=lbAnnotation.MathUtils.getLineCenterPoint([c,x]),D={x:{x:f.x-L.x,y:f.y-L.y}.x,y:0,z:f.y-L.y},w=lbAnnotation.MathUtils.getLineLength(p,e),V=lbAnnotation.MathUtils.getLineLength(c,d),T=w-V,k=lbAnnotation.MathUtils.getLineLength(e,P),O=lbAnnotation.MathUtils.getLineLength(d,x),M=k-O;let{newBoxParams:B}=a.getNewBoxByBackUpdate(D,M,T,t);return B},syncSideViewByPoint=(o,n,t,a,p)=>{var e;if(!t)return;const{toolInstance:P,pointCloudInstance:c}=t;c.loadPCDFile(a,(e=p==null?void 0:p.radius)!=null?e:DEFAULT_RADIUS);const{cameraPositionVector:d}=c.updateOrthoCameraBySphere(o,lbUtils.EPerspectiveView.Left);c.setInitCameraPosition(d);const{point2d:x,zoom:f}=c.getSphereSidePoint2DCoordinate(o);c.camera.zoom=f,c.camera.updateProjectionMatrix(),c.render(),P.initPosition(),P.zoomChangeOnCenter(f),P.setResult([__spreadProps(__spreadValues(__spreadValues({},n),x),{valid:o.valid,textAttribute:"",attribute:o.attribute})]),P.setSelectedID(n.id)},synchronizeSideView=(o,n,t,a)=>{if(!t)return;const{pointCloud2dOperation:p,pointCloudInstance:e}=t;e.loadPCDFileByBox(a,o,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:P}=e.updateOrthoCamera(o,lbUtils.EPerspectiveView.Left);e.setInitCameraPosition(P);const{polygon2d:c,zoom:d}=e.getBoxSidePolygon2DCoordinate(o);e.camera.zoom=d,e.camera.updateProjectionMatrix(),e.render(),p.initPosition(),p.zoomChangeOnCenter(d),p.setResultAndSelectedID([{id:n.id,valid:o.valid,pointList:c,textAttribute:"",isRect:!0,attribute:o.attribute}],n.id)},syncBackViewByPoint=(o,n,t,a,p)=>{var e;if(!t)return;const{toolInstance:P,pointCloudInstance:c}=t;c.loadPCDFile(a,(e=p==null?void 0:p.radius)!=null?e:DEFAULT_RADIUS);const{cameraPositionVector:d}=c.updateOrthoCameraBySphere(o,lbUtils.EPerspectiveView.Back);c.setInitCameraPosition(d);const{point2d:x,zoom:f}=c.getSphereBackPoint2DCoordinate(o);c.camera.zoom=f,c.camera.updateProjectionMatrix(),c.render(),P.initPosition(),P.zoomChangeOnCenter(f),P.setResult([__spreadProps(__spreadValues(__spreadValues({},n),x),{valid:o.valid,textAttribute:"",attribute:o.attribute})]),P.setSelectedID(n.id)},synchronizeBackView=(o,n,t,a)=>{if(!t)return;const{pointCloud2dOperation:p,pointCloudInstance:e}=t;e.loadPCDFileByBox(a,o,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:P}=e.updateOrthoCamera(o,lbUtils.EPerspectiveView.Back);e.setInitCameraPosition(P);const{polygon2d:c,zoom:d}=e.getBoxBackPolygon2DCoordinate(o);e.camera.zoom=d,e.camera.updateProjectionMatrix(),e.render(),p.initPosition(),p.zoomChangeOnCenter(d),p.setResultAndSelectedID([{id:n.id,valid:o.valid,pointList:c,textAttribute:"",isRect:!0,attribute:o.attribute}],n.id)},syncTopViewByPoint=(o,n,t,a)=>{if(!t||!a)return;a.generateSphere(o),a.updateCameraBySphere(o,lbUtils.EPerspectiveView.Top),a.render();const{toolInstance:p,pointCloudInstance:e}=t,{point2d:P}=e.getSphereTopPoint2DCoordinate(o),c=[...p.pointList].map(d=>d.id===n.id?__spreadProps(__spreadValues(__spreadValues({},n),P),{valid:o.valid,textAttribute:"",attribute:o.attribute}):d);p.setResult(c),p.setSelectedID(n.id)},synchronizeTopView=(o,n,t,a)=>{var p,e;if(!t||!a)return;a.generateBox(o),a.setHighlightColor(o.id),a.render();const{pointCloud2dOperation:P,pointCloudInstance:c}=t,{polygon2d:d}=c.getBoxTopPolygon2DCoordinate(o),x=[...P.polygonList],f=x.find(L=>L.id===n.id);f?(f.pointList=d,f.valid=(p=o.valid)!=null?p:!0):x.push({id:n.id,pointList:d,textAttribute:"",isRect:!0,valid:(e=o.valid)!=null?e:!0}),P.setResultAndSelectedID(x,n.id)},usePointCloudViews=o=>{const n=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:t,sideViewInstance:a,backViewInstance:p,mainViewInstance:e,addPointCloudBox:P,addPointCloudSphere:c,setSelectedIDs:d,selectedIDs:x,pointCloudBoxList:f,pointCloudSphereList:L,hideAttributes:R,setHighlight2DDataList:D,cuboidBoxIn2DView:w,imageSizes:V,history:T,linkageImageNameRectMap:k}=n,{addHistory:O,initHistory:M,pushHistoryUnderUpdatePolygon:B}=useHistory.useHistory(),{selectedPolygon:ot}=usePolygon.usePolygon(),{getPointCloudSphereByID:nt,updatePointCloudSphere:Y,selectedSphere:W}=useSphere.useSphere(),{currentData:j,config:y}=ctx.useSelector(s=>{const{stepList:i,step:u,imgList:l,imgIndex:r}=s.annotation;return{currentData:l[r],config:index.jsonParser(StepUtils.getCurrentStepInfo(u,i).config)}}),z=ctx.useDispatch(),it=ahooks.useLatest(w),st=ahooks.useLatest(k),lt=React.useCallback((s,i)=>{const u=st.current,l=i.id;return s.filter(g=>{if(!g)return!1;const C=u.get(g.imageName);return C===void 0?!0:Boolean(C.get(l))})},[]),J=s=>{const{enableAutoMap2DRect:i=!1}=y;if(!it.current||i){const{mappingImgList:u=[]}=j;index.generatePointCloudBoxRects({pointCloudBox:s,mappingImgList:u,imageSizes:V},{prepareRectsFn:lt})}},{selectedBox:U,updateSelectedBox:rt,updateSelectedBoxes:Q,getPointCloudByID:at}=useSingleBox.useSingleBox({generateRects:J}),K=U==null?void 0:U.info;if(!t||!a||!p)return{topViewAddSphere:()=>{},topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:X}=t,dt=s=>{e==null||e.generateSphere(s),e==null||e.controls.update(),e==null||e.render()},ut=({newPoint:s,size:i,zoom:u,trackConfigurable:l})=>{var r;const g={attribute:(r=t.toolInstance.defaultAttribute)!=null?r:""};l===!0&&Object.assign(g,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:[],extraSphereList:L})});const C=topViewPoint2PointCloud(s,i,X,void 0,g);d(s.id);const h=c(C);H(PointCloudView.Top,s,C,u,h,y),O({newSphereParams:C})},ct=({polygon:s,size:i,imgList:u,trackConfigurable:l,zoom:r,intelligentFit:g})=>{var C,h,m;const b={attribute:(C=t.toolInstance.defaultAttribute)!=null?C:""};l===!0&&Object.assign(b,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:f,extraSphereList:L})});const S=t==null?void 0:t.toolInstance,I=__spreadValues({},s);let{boxParams:v,newPointList:A}=topViewPolygon2PointCloud(I,i,X,void 0,b,g);v=z(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[v],stepConfig:y,action:"viewUpdateBox"}))[0],g&&(A==null?void 0:A.length)&&(I.pointList=A);const E=R.includes(I.attribute);J(v);const F=P(v),Z=(h=n==null?void 0:n.polygonList)!=null?h:[];v.subAttribute=lbAnnotation.TagUtils.getDefaultResultByConfig((y==null?void 0:y.secondaryAttributeConfigurable)?(m=y==null?void 0:y.inputList)!=null?m:[]:[]),t==null||t.updatePolygonList(F!=null?F:[],Z),E?d([]):(d(v.id),S.selection.setSelectedIDs(I.id),N({omitView:PointCloudView.Top,polygon:I,boxParams:v,zoom:r,newPointCloudBoxList:F}),g&&synchronizeTopView(v,I,t,e)),O({newBoxParams:v})},pt=s=>{const{boxID:i,imageName:u,width:l,height:r,x:g,y:C}=s,h=f.find(v=>v.id===i);if(!(h==null?void 0:h.rects)||!h.rects.find(v=>v.imageName===u))return;const b=h.rects.map(v=>v.imageName===u?__spreadProps(__spreadValues({},v),{width:l,height:r,x:g,y:C}):v),S=__spreadProps(__spreadValues({},h),{rects:b}),I=f.map(v=>v.id===i?S:v);return t==null||t.updatePolygonList(I!=null?I:[]),I},gt=s=>{const{boxID:i,imageName:u}=s,l=f.find(h=>h.id===i);if(!(l==null?void 0:l.rects))return;const r=l.rects.filter(h=>h.imageName!==u),g=__spreadProps(__spreadValues({},l),{rects:r}),C=f.map(h=>h.id===i?g:h);return t==null||t.updatePolygonList(C!=null?C:[]),C},Pt=({newSelectedBox:s,newPointCloudList:i,newSelectedSphere:u,newSphereList:l})=>{var r;const g=t==null?void 0:t.toolInstance;if(!(x.length===0||!g)){if(s||(U==null?void 0:U.info)){const C=s!=null?s:U==null?void 0:U.info;(r=g==null?void 0:g.selection)==null||r.setSelectedIDs(x[0]);const h=g.selectedPolygon;if(x.length===1&&C){N({omitView:PointCloudView.Top,polygon:h,boxParams:C,newPointCloudBoxList:i});return}}if((u||W)&&x.length===1){const C=u!=null?u:W;g.setSelectedID(x[0]);const h=g.selectedPoint;C&&H(PointCloudView.Top,h,C,void 0,l,y)}}},$=(s,i,u)=>{if(K){let l,r;switch(u){case PointCloudView.Back:l=backViewPolygon2PointCloud;break;case PointCloudView.Side:l=sideViewPolygon2PointCloud;break;default:l=sideViewPolygon2PointCloud;break}if(r=l(s,i,K,a.pointCloudInstance),e){const{count:b}=e.getSensesPointZAxisInPolygon(lbAnnotation.getCuboidFromPointCloudBox(r).polygonPointList,[r.center.z-r.depth/2,r.center.z+r.depth/2]);r=__spreadProps(__spreadValues({},r),{count:b})}const C=z(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[r],stepConfig:y,action:"viewUpdateBox"}))[0],h=r.valid!==C.valid;r=C;const m=rt(r);return r=m.find(b=>b.id===r.id),N({omitView:h?void 0:u,polygon:s,boxParams:r,newPointCloudBoxList:m}),m}},tt=(s,i,u)=>{if(W){let l,r;switch(u){case PointCloudView.Back:l=backViewPoint2PointCloud;break;case PointCloudView.Side:l=sideViewPoint2PointCloud;break;default:l=sideViewPoint2PointCloud;break}r=l(s,i,W);const g=Y(r);return H(u,s,r,void 0,g,y),g}},Ct=(s,i)=>{tt(s,i,PointCloudView.Side)},ft=(s,i)=>{tt(s,i,PointCloudView.Back)},ht=(s,i)=>{$(s,i,PointCloudView.Side)},xt=(s,i)=>{$(s,i,PointCloudView.Back)},vt=(s,i)=>{const u=nt(s.id),l=topViewPoint2PointCloud(s,i,X,u),r=Y(l);H(PointCloudView.Top,s,l,void 0,r,y)},Lt=(s,i)=>{if(ot){const l=__spreadValues({},s[0].newPolygon);l.pointList=l.pointList.map(r=>lbUtils.PointCloudUtils.transferCanvas2World(r,i)),B(l);return}let u=s.map(({newPolygon:l})=>{const r=at(l.id),{boxParams:g}=topViewPolygon2PointCloud(l,i,t.pointCloudInstance,r);return g});if(u=z(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:u,stepConfig:y,action:"viewUpdateBox"})),u.length===1){const{newPolygon:l}=s[0],r=Q(u);N({polygon:l,boxParams:u[0],newPointCloudBoxList:r})}else{const l=Q(u);l&&n.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.MultiMove,l)}},yt=s=>{var i,u,l,r,g;if(U){const C=Number(s.widthDefault),h=Number(s.depthDefault),m=Number(s.heightDefault),b=U==null?void 0:U.info.trackID,I=((i=t==null?void 0:t.toolInstance)==null?void 0:i.polygonList).find(G=>(G==null?void 0:G.trackID)===b),v={width:(l=(u=t==null?void 0:t.toolInstance)==null?void 0:u.basicImgInfo)==null?void 0:l.width,height:(g=(r=t==null?void 0:t.toolInstance)==null?void 0:r.basicImgInfo)==null?void 0:g.height},A=I.pointList.map(G=>lbUtils.PointCloudUtils.transferCanvas2World(G,v)),q=lbAnnotation.MathUtils.getModifiedRectangleCoordinates(A,m,C),E=q[0],F=q[2],Z=lbAnnotation.MathUtils.getLineCenterPoint([E,F]),mt=U.info.center.z-U.info.depth/2,et=__spreadProps(__spreadValues({},U.info),{center:{x:Z.x,y:Z.y,z:mt+h/2},width:C,height:m,depth:h,valid:!0}),Bt=Q([et]);N({omitView:PointCloudView["3D"],polygon:I,boxParams:et,newPointCloudBoxList:Bt})}},H=(s,i,u,l,r,g)=>__async(void 0,null,function*(){const C=j==null?void 0:j.url,h={[PointCloudView.Side]:()=>{syncSideViewByPoint(u,i,a,C,g)},[PointCloudView.Back]:()=>{p&&syncBackViewByPoint(u,i,p,C,g)},[PointCloudView.Top]:()=>{syncTopViewByPoint(u,i,t,e)}};Object.keys(h).forEach(m=>{m!==s&&h[m]()}),l&&(e==null||e.updateCameraZoom(l)),dt(u)}),N=(s,i=ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Default)=>{const{omitView:u,polygon:l,boxParams:r,zoom:g,newPointCloudBoxList:C}=s,h=j==null?void 0:j.url;C&&n.syncAllViewPointCloudColor(i,C);const m={[PointCloudView.Side]:()=>{synchronizeSideView(r,l,a,h)},[PointCloudView.Back]:()=>{p&&synchronizeBackView(r,l,p,h)},[PointCloudView.Top]:()=>{synchronizeTopView(r,l,t,e)}};Object.keys(m).forEach(b=>{b!==u&&m[b]()}),g&&(e==null||e.updateCameraZoom(g))};return{topViewAddSphere:ut,topViewAddBox:ct,topViewSelectedChanged:Pt,topViewUpdatePoint:vt,sideViewUpdatePoint:Ct,backViewUpdatePoint:ft,topViewUpdateBox:Lt,sideViewUpdateBox:ht,backViewUpdateBox:xt,syncPointCloudViews:N,syncPointCloudPoint:H,pointCloudBoxListUpdated:s=>{t.updatePolygonList(s),e==null||e.generateBoxes(s)},initPointCloud3d:s=>{if(!e)return;const i=lbUtils.PointCloudUtils.getDefaultOrthographicParams(s);e.initOrthographicCamera(i),e.initRenderer(),e.render()},updatePointCloudData:(...s)=>__async(void 0,[...s],function*(i=j){var u,l,r,g,C,h,m,b;if(!(i==null?void 0:i.url)||!e)return;D([]),actionCreators.SetAnnotationLoading(z,!0),actionCreators.SetLoadPCDFileLoading(z,!0),(u=o==null?void 0:o.setResourceLoading)==null||u.call(o,!0),yield e.loadPCDFile(i.url,(l=y==null?void 0:y.radius)!=null?l:DEFAULT_RADIUS),e==null||e.clearAllBox(),e==null||e.clearAllSphere();let S=[],I=[],v=[],A=[];e.updateTopCamera();const q=(g=(r=index.jsonParser(i.result))==null?void 0:r.valid)!=null?g:!0;if(n.setPointCloudValid(q),(C=n.sideViewInstance)==null||C.clearAllData(),(h=n.backViewInstance)==null||h.clearAllData(),i.result){if(S=lbUtils.PointCloudUtils.getBoxParamsFromResultList(i.result),(S==null?void 0:S.length)>0&&i.isPreResult&&(y==null?void 0:y.lowerLimitPointsNumInBox)>0){S=yield e==null?void 0:e.filterPreResult(i.url,y,S);const E=index.jsonParser(i.result);E[lbUtils.POINT_CLOUD_DEFAULT_STEP].result=S,i.result=JSON.stringify(E),n.setPointCloudResult(S)}v=lbUtils.PointCloudUtils.getPolygonListFromResultList(i.result),I=lbUtils.PointCloudUtils.getLineListFromResultList(i.result),A=lbUtils.PointCloudUtils.getSphereParamsFromResultList(i.result),t.updateData(i.url,i.result,{radius:(m=y==null?void 0:y.radius)!=null?m:DEFAULT_RADIUS}),e==null||e.generateBoxes(S),e==null||e.generateSpheres(A),yield n.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Default,S,[])}M({pointCloudBoxList:S,polygonList:v,lineList:I,pointCloudSphereList:A}),actionCreators.SetAnnotationLoading(z,!1),actionCreators.SetLoadPCDFileLoading(z,!1),(b=o==null?void 0:o.setResourceLoading)==null||b.call(o,!1)}),updateViewsByDefaultSize:yt,generateRects:J,update2DViewRect:pt,remove2DViewRect:gt}},useSyncRectPositionDimensionToPointCloudList=()=>{const{pointCloudBoxList:o,rectList:n,setPointCloudResult:t}=React.useContext(PointCloudContext.PointCloudContext),a=ahooks.useLatest(o),p=ahooks.useLatest(n);return{syncToPointCloudBoxList:React.useCallback(()=>{const P=a.current,c=p.current;if(c.length===0)return null;const d=new Map,x=new Set;if(c.filter(f=>f.extId!==void 0).forEach(f=>{const L=f.extId,R=f.imageName,D=_.pick(f,["x","y","width","height"]);let w=d.get(L);w||(w=new Map,d.set(L,w)),w.set(R,D),x.add(L)}),d.size){const f=P.map(L=>{var R;const D=L.id;if(x.has(D)){const w=__spreadValues({},L);return(R=w.rects)==null||R.forEach(V=>{var T;const k=V.imageName;Object.assign(V,(T=d.get(D))==null?void 0:T.get(k))}),w}return L});return t(f),f}return null},[])}};exports.syncBackViewByPoint=syncBackViewByPoint,exports.syncSideViewByPoint=syncSideViewByPoint,exports.syncTopViewByPoint=syncTopViewByPoint,exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,exports.topViewPoint2PointCloud=topViewPoint2PointCloud,exports.topViewPolygon2PointCloud=topViewPolygon2PointCloud,exports.usePointCloudViews=usePointCloudViews,exports.useSyncRectPositionDimensionToPointCloudList=useSyncRectPositionDimensionToPointCloudList;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),ctx=require("../../../store/ctx.js"),useSingleBox=require("./useSingleBox.js"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation"),actionCreators=require("../../../store/annotation/actionCreators.js"),usePointCloudViews=require("./usePointCloudViews.js"),useSphere=require("./useSphere.js"),useHistory=require("./useHistory.js"),ToolPointCloudBoxRenderHelper=require("../../../utils/ToolPointCloudBoxRenderHelper.js");const PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},useUpdatePointCloudColor=(v,a)=>{const l=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:u,selectedIDs:t,pointCloudBoxList:s,mainViewInstance:c,selectedID:g}=l,f=ctx.useDispatch(),{selectedSphere:C}=useSphere.useSphere(),{syncPointCloudViews:p,syncPointCloudPoint:P,generateRects:h}=usePointCloudViews.usePointCloudViews({setResourceLoading:v}),{selectedBox:d,updateSelectedBox:x}=useSingleBox.useSingleBox({generateRects:h}),{pushHistoryWithList:V}=useHistory.useHistory(),q=({newSelectedSphere:i,newSphereList:o})=>{const n=u==null?void 0:u.toolInstance;if((i||C)&&t.length===1){const e=i!=null?i:C;n.setSelectedID(t[0]);const r=n.selectedPoint;e&&(P==null||P(PointCloudView.Top,r,e,void 0,o,a))}},y=({trigger:i,newSelectedBox:o})=>{const n=u==null?void 0:u.toolInstance;if(!(t.length===0||!n)&&(o||(d==null?void 0:d.info))){const e=o!=null?o:d==null?void 0:d.info,r=o;if(e){p==null||p({omitView:PointCloudView.Top,polygon:r,boxParams:e},i);return}}};return{updatePointCloudColor:i=>{if(s.forEach(o=>{var n,e,r;if(o&&t.includes(o.id)){o.attribute=i;const S=f(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[o],stepConfig:a,action:"viewUpdateBox"}));o.valid=S[0].valid,x(o),(r=(e=(n=l==null?void 0:l.topViewInstance)==null?void 0:n.pointCloud2dOperation)==null?void 0:e.setPolygonValidAndRender)==null||r.call(e,o.id,!0,o.valid),q({})}}),c){const o=t&&t.length>1?ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.MulitSelect:ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Single;if(l.syncAllViewPointCloudColor(o,s),t&&t.length===1){const n=s.find(e=>e.id===t[0]);y({trigger:o,newSelectedBox:n})}c.generateBoxes(s)}g||V({pointCloudBoxList:s})}}};exports.useUpdatePointCloudColor=useUpdatePointCloudColor;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),ctx=require("../../../store/ctx.js"),useSingleBox=require("./useSingleBox.js"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation"),actionCreators=require("../../../store/annotation/actionCreators.js"),usePointCloudViews=require("./usePointCloudViews.js"),useSphere=require("./useSphere.js"),useHistory=require("./useHistory.js"),ToolPointCloudBoxRenderHelper=require("../../../utils/ToolPointCloudBoxRenderHelper.js");const PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},useUpdatePointCloudColor=(v,c)=>{const s=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:u,selectedIDs:i,pointCloudBoxList:l,mainViewInstance:d,selectedID:g}=s,f=ctx.useDispatch(),{selectedSphere:C}=useSphere.useSphere(),{syncPointCloudViews:p,syncPointCloudPoint:P,generateRects:h}=usePointCloudViews.usePointCloudViews({setResourceLoading:v}),{selectedBox:a,updateSelectedBox:x}=useSingleBox.useSingleBox({generateRects:h}),{pushHistoryWithList:V}=useHistory.useHistory(),q=({newSelectedSphere:n,newSphereList:o})=>{const e=u==null?void 0:u.toolInstance;if((n||C)&&i.length===1){const t=n!=null?n:C;e.setSelectedID(i[0]);const r=e.selectedPoint;t&&(P==null||P(PointCloudView.Top,r,t,void 0,o,c))}},y=({trigger:n,newSelectedBox:o})=>{const e=u==null?void 0:u.toolInstance;if(!(i.length===0||!e)&&(o||(a==null?void 0:a.info))){const t=o!=null?o:a==null?void 0:a.info,r=o;if(t){p==null||p({omitView:PointCloudView.Top,polygon:r,boxParams:t},n);return}}};return{updatePointCloudColor:n=>{if(l.forEach(o=>{var e,t,r;if(o&&i.includes(o.id)){o.attribute=n;const S=f(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[o],stepConfig:c,action:"viewUpdateBox"}));o.valid=S[0].valid,x(o),(r=(t=(e=s==null?void 0:s.topViewInstance)==null?void 0:e.pointCloud2dOperation)==null?void 0:t.setPolygonValidAndRender)==null||r.call(t,o.id,!0,o.valid),q({})}}),d){const o=i&&i.length>1?ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.MulitSelect:ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Single;s.syncAllViewPointCloudColor(o,l);let e;i&&i.length===1&&(e=l.find(t=>t.id===i[0]),y({trigger:o,newSelectedBox:e})),d.generateBoxes(l),e&&(d.setHighlightColor(e.id),d.render())}g||V({pointCloudBoxList:l})}}};exports.useUpdatePointCloudColor=useUpdatePointCloudColor;
package/dist/index.css CHANGED
@@ -1018,6 +1018,16 @@
1018
1018
  .index-module_clearIcon__ZBZqI.index-module_disabled__zqh8C {
1019
1019
  cursor: not-allowed;
1020
1020
  }
1021
+
1022
+ .index-module_textInputBox__C6pdt {
1023
+ flex: 1;
1024
+ overflow: scroll;
1025
+ text-align: center;
1026
+ }
1027
+ .index-module_textInputBox__C6pdt .index-module_textInputChild__SOQT6 {
1028
+ display: inline-block;
1029
+ width: 65%;
1030
+ }
1021
1031
  .index-module_optionMenu__-aO65 {
1022
1032
  display: flex;
1023
1033
  flex-direction: column;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$2=require("../../../components/LLMMultiWheelView/index.js"),index=require("../../../constant/index.js"),index$1=require("../../../utils/index.js"),dom=require("../../../utils/dom.js"),es=require("antd/es"),React=require("react"),index$4=require("../sidebar/index.js"),index$3=require("../toolFooter/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const LLMMultiWheelViewCls=`${index.prefix}-LLMMultiWheelView`,{Sider,Content}=es.Layout,layoutCls=`${index.prefix}-layout`,LLMMultiWheelLayout=e=>{var t,l;return React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container")},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:index$1.classnames({[`${layoutCls}__content`]:!0,[`${index.prefix}-LLMLayout`]:!0})},React__default.default.createElement(index$2.default,{showTips:e.showTips,tips:e.tips,drawLayerSlot:e.drawLayerSlot}),React__default.default.createElement(index$3.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer})),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:600,style:{position:"relative"}},React__default.default.createElement(index$4.default,{sider:e==null?void 0:e.sider,checkMode:e==null?void 0:e.checkMode}),(l=e.drawLayerSlot)==null?void 0:l.call(e,{})))};exports.LLMMultiWheelViewCls=LLMMultiWheelViewCls,exports.default=LLMMultiWheelLayout;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$2=require("../../../components/LLMMultiWheelView/index.js"),index=require("../../../constant/index.js"),index$1=require("../../../utils/index.js"),dom=require("../../../utils/dom.js"),es=require("antd/es"),reResizable=require("re-resizable"),React=require("react"),index$4=require("../sidebar/index.js"),index$3=require("../toolFooter/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const LLMMultiWheelViewCls=`${index.prefix}-LLMMultiWheelView`,{Sider,Content}=es.Layout,layoutCls=`${index.prefix}-layout`,LLMMultiWheelLayout=e=>{var t,l;return React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container")},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:index$1.classnames({[`${layoutCls}__content`]:!0,[`${index.prefix}-LLMLayout`]:!0})},React__default.default.createElement(index$2.default,{showTips:e.showTips,tips:e.tips,drawLayerSlot:e.drawLayerSlot}),React__default.default.createElement(index$3.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer})),React__default.default.createElement(reResizable.Resizable,{defaultSize:{width:600},enable:{left:!0}},React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:"100%",style:{position:"relative",height:"100%"}},React__default.default.createElement(index$4.default,{sider:e==null?void 0:e.sider,checkMode:e==null?void 0:e.checkMode}),(l=e.drawLayerSlot)==null?void 0:l.call(e,{}))))};exports.LLMMultiWheelViewCls=LLMMultiWheelViewCls,exports.default=LLMMultiWheelLayout;