@labelbee/lb-components 1.23.0-alpha.93 → 1.23.0-alpha.95
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"),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$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=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$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js"),reactI18next=require("react-i18next");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:Oe,height:We,hideError:Ne,onError:re,updateRegion:C,removeRegion:D,regions:w=[],activeToolPanel:Fe,clipConfigurable:ze,clipTextConfigurable:ne,clipAttributeList:Ue,clipAttributeConfigurable:oe,secondaryAttributeConfigurable:He,subAttributeList:Xe,isCheck:b,hoverRegionId:O,footer:Ze,drawLayerSlot:ie,clipTextList:Ke,lang:ae})=>{var le,se;const{url:I,path:ue}=l,[W,N]=React.useState(!1),[ce,de]=React.useState(!1),[S,Ve]=React.useState(0),[Ge,fe]=React.useState(!1),[$,ve]=React.useState(0),o=React.useRef(null),R=React.useRef(null),me=React.useRef(S),F=e=>{me.current=e,Ve(e)},[pe,Ye]=React.useState(0),[k,Je]=React.useState(1),z=React.useRef(null),[ge,Qe]=React.useState({}),{audioClipState:U,setAudioClipState:q}=index.useAudioClipStore(),[H,X]=React.useState(!1),c=ahooks.useLatest(U),be=ahooks.useLatest(ge),_e=ahooks.useLatest(W),A=ahooks.useLatest(w),ye=ahooks.useUpdate(),[Ee,et]=React.useState([]),[Se,tt]=React.useState({}),rt=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Re=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Je(e),audio.dispatchResizeEvent(),rt())};index$1({container:z.current,target:document.querySelector(`[data-id=${(se=(le=c.current)==null?void 0:le.selectedRegion)==null?void 0:se.id}]`),clipping:H,zoom:k,zoomHandler:Re});const j=()=>{let e=A.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),K(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!b,resize:!b,color:"rgba(0, 0, 0, 0)"}))}),ye()},v=e=>{var r,t,n,i,s,m,p;const{id:a,loop:f=!0,playImmediately:g=!1,isLoopStatus:T}=e,P=T?_e.current:f;if(a){const h=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(h).forEach(([,E])=>{const{id:M}=E;a===M?E.select():E.cancelSelect()}),q({selectedRegion:{id:a,loop:P},selectedAttribute:(m=(s=(i=A.current)==null?void 0:i.find(E=>E.id===a))==null?void 0:s.attribute)!=null?m:""}),P&&g&&((p=B(a))==null||p.playLoop())}else q({selectedRegion:{}})},{combineInstance:nt}=index$2({waveRef:o,sortByStartRegions:Ee,regionMap:Se,updateRegion:C,removeRegion:D,generateRegions:j,setSelectedRegion:v}),{segmentInstance:ot,onRegionMouseMove:it,segmentTimeTip:at}=index$3({waveRef:o,regionMap:Se,updateRegion:C,removeRegion:D,generateRegions:j,setSelectedRegion:v}),xe={clipTextConfigurable:ne,clipAttributeList:Ue,clipAttributeConfigurable:oe,clipConfigurable:ze,secondaryAttributeConfigurable:He,subAttributeList:Xe,clipTextList:Ke};React.useEffect(()=>{var e;ae&&((e=lbUtils.i18n)==null||e.changeLanguage(ae))},[]),React.useEffect(()=>{q({selectedAttribute:""})},[oe]),React.useEffect(()=>{Z()},[U.selectedAttribute]),React.useEffect(()=>{j()},[U.attributeLockList]),ahooks.useDeepCompareEffect(()=>{q(xe),setTimeout(()=>{Pe()})},[xe]),ahooks.useDeepCompareEffect(()=>{et(_.sortBy(w,["start"])),tt(w.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{})),b&&j()},[w]),React.useEffect(()=>{if(O){const e=_e.current;v({id:O,loop:e,playImmediately:!0})}else v({})},[O]);const Pe=()=>{var e,r;c.current.clipConfigurable?(!b&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),j()):((r=o.current)==null||r.disableDragSelection(),K()),Z()},Z=()=>{var e,r,t,n,i;let s="";c.current.clipConfigurable?s=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):s="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${s}`}))},B=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},he=()=>{var e,r;if(I){const t=((r=(e=ue==null?void 0:ue.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";fe(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(I).then(n=>{Ce(n)}):Ce(I)}},Ce=e=>{var r;e&&(de(!0),F(0),ve(0),(r=o==null?void 0:o.current)==null||r.load(e))},K=()=>{var e;(e=o.current)==null||e.clearRegions()},V=e=>{const r=B(e);r&&(X(!1),r==null||r.remove(),D==null||D(e),v({}))},{run:we}=ahooks.useThrottleFn(v,{wait:500});index$4({sortByStartRegions:Ee,setSelectedRegion:v});const lt=e=>{const{start:r,end:t}=be.current;return(r||t)&&e.update(be.current),e},st=({action:e,id:r,eventDownTime:t})=>{var n,i;if(!c.current.clipConfigurable)return;r&&v({id:r});const s=B((r!=null?r:(n=c.current.selectedRegion)==null?void 0:n.id)||""),m=[];(e==="create"?A.current:(i=A.current)==null?void 0:i.filter(f=>f.id!==s.id)).forEach(f=>{const{start:g,end:T,attribute:P}=f;P===c.current.selectedAttribute&&[g,T].forEach(h=>{m.includes(h)||m.push(h)})});const a=audio.getCanMoveRange(m.sort((f,g)=>f-g),t);o.current.range=a},ut=e=>{Z(),setTimeout(()=>{X(!1)});const r=lt(e),{id:t,start:n,end:i}=r;v({id:t,playImmediately:!0});const s={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};C==null||C(s),ye()},ct=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:We||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:w,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;F(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;ve(n),r(),u==null||u({duration:Math.round(n)}),de(!1),L(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",Y),lbAnnotation.EventBus.on("clearRegions",K),lbAnnotation.EventBus.on("removeRegionById",V),lbAnnotation.EventBus.on("setSelectedRegion",we),e.on("regions-eventDown",st),Pe()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{N(!0)}),e.on("pause",()=>{N(!1)}),e.on("finish",()=>{N(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{fe(!0),u==null||u({hasError:!0}),re==null||re()}),e.on("region-created",t=>{var n;const{id:i,start:s,end:m}=t;if(A.current.find(a=>a.id===i))return;const p={id:i,start:utils.decimalReserved(s,3),end:utils.decimalReserved(m,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})}),C==null||C(p)}),e.on("region-updated",(t,n)=>{var i,s,m,p,a,f,g,T,P,h;const E=n==null?void 0:n.action;q({combined:!1,segment:!1}),E==="resize"&&((s=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||s.setStyle({borderStyle:"solid"})),E==="drag"&&((p=(m=o==null?void 0:o.current)==null?void 0:m.cursor)==null||p.setStyle({borderColor:"transparent"}));const M={},J=[],Q={},Rt=(a=A.current)==null?void 0:a.filter(y=>y.id!==t.id),xt=(T=(g=(f=o.current)==null?void 0:f.regions)==null?void 0:g.list)!=null?T:{};Rt.forEach(y=>{var Ie,$e;const{element:ee}=(Ie=xt[y.id])!=null?Ie:{},{start:Ct,end:wt}=y;if(ee){const{x:ke,width:At}=(($e=ee.getBoundingClientRect)==null?void 0:$e.call(ee))||{},Tt=ke+At;[ke,Tt].forEach((te,qt)=>{J.includes(te)||(J.push(te),Q[te]=qt===0?Ct:wt)})}});const{x:De,width:Pt}=((h=(P=t.element).getBoundingClientRect)==null?void 0:h.call(P))||{},ht=De+Pt;J.forEach(y=>{Math.abs(audio.precisionMinus(y,De))<5&&(M.start=Q[y]),Math.abs(audio.precisionMinus(y,ht))<5&&(M.end=Q[y])}),Qe(M),we({id:t.id}),X(!0)}),e.on("region-update-end",t=>{ut(t)}),e.on("region-contextmenu",(t,n)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){V(t.id);return}v({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,i)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),c.current.combined){nt(t);return}if(c.current.segment){ot(t,i);return}v({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",it),o.current=e},dt=W?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Ae=e=>e?`${parseFloat((e/$*100).toFixed(4))}%`:"0%",Te=Ae(S),ft=Ae(pe),x=()=>{if(!ce)return o==null?void 0:o.current},vt=()=>{var e;(e=x())==null||e.skipForward(PER_PROGRESS)},mt=()=>{var e;(e=x())==null||e.skipBackward(PER_PROGRESS)},L=()=>{var e;(e=x())==null||e.playPause(),v({})},qe=e=>{var r;switch(e.keyCode){case EKeyCode.Right:vt();break;case EKeyCode.Left:mt();break;case EKeyCode.Space:e.preventDefault(),L();break;case EKeyCode.Delete:if(!b){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&V(t)}break}},pt=e=>{Y(e)},je=___default.default.throttle(pt,50);let G=!1;const Be=()=>{G&&(L(),G=!1),document.removeEventListener("mousemove",je),document.removeEventListener("mouseup",Be)},gt=e=>{Y(e),W&&(G=!0,L()),document.addEventListener("mousemove",je),document.addEventListener("mouseup",Be)},bt=()=>{he()};React.useEffect(()=>(ct(),()=>{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 _t=e=>{var r,t,n;(r=x())==null||r.playPause(),(t=x())==null||t.setPlaybackRate(e),(n=x())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",qe),()=>{document.removeEventListener("keydown",qe)})),React.useEffect(()=>{v({}),he()},[I]);const Le=e=>{var r,t,n,i;if((o==null?void 0:o.current)&&(R==null?void 0:R.current)){const s=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,m=(n=R==null?void 0:R.current)==null?void 0:n.getBoundingClientRect();let a=(e.clientX-m.left)/(((i=R==null?void 0:R.current)==null?void 0:i.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},Y=e=>{var r;const t=Le(e);(r=o==null?void 0:o.current)==null||r.skip(t-me.current),F(t)},yt=e=>{Ye(Le(e))},Et=$?Math.max($-S,0):0,St=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(Fe==="remark"||b),Me=React__default.default.createElement("div",{className:index_module.audioPlayer},Ge&&!Ne&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:bt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:B,clipping:H}),React__default.default.createElement(index$7,{container:z.current}),React__default.default.createElement(index$8,{segmentTimeTip:at}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:z},React__default.default.createElement("div",{id:"waveform",style:{width:`${k*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},Oe&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:R,className:index_module.progress,onMouseDown:gt,onMouseMove:yt},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:Te}},audio.formatTime(S)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:ft}},audio.formatTime(pe)),React__default.default.createElement(index$b,{playPercentage:Te})),St&&(ie==null?void 0:ie({currentTime:S,remainingTime:Et,audioPlayer:x()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:dt,onClick:()=>{L()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ce})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(S,"ss.SSS")} / -${audio.timeFormat($-S,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{_t(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{Re(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Me,w.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:ge,clipping:H,zoom:k,instance:B(r),isCheck:b}):null}),React__default.default.createElement(index$g.default,{footer:Ze})):Me},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$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=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$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js"),reactI18next=require("react-i18next");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:ke,height:Oe,hideError:We,onError:re,updateRegion:h,removeRegion:D,regions:C=[],activeToolPanel:Ne,clipConfigurable:Fe,clipTextConfigurable:ne,clipAttributeList:ze,clipAttributeConfigurable:oe,secondaryAttributeConfigurable:Ue,subAttributeList:He,isCheck:b,hoverRegionId:O,footer:Xe,drawLayerSlot:ie,clipTextList:Ze,lang:ae})=>{var le,se;const{url:I,path:ue}=l,[W,N]=React.useState(!1),[ce,de]=React.useState(!1),[S,Ke]=React.useState(0),[Ve,fe]=React.useState(!1),[$,ve]=React.useState(0),o=React.useRef(null),x=React.useRef(null),me=React.useRef(S),F=e=>{me.current=e,Ke(e)},[pe,Ge]=React.useState(0),[k,Ye]=React.useState(1),z=React.useRef(null),[ge,Je]=React.useState({}),{audioClipState:U,setAudioClipState:T}=index.useAudioClipStore(),[H,X]=React.useState(!1),c=ahooks.useLatest(U),be=ahooks.useLatest(ge);ahooks.useLatest(W);const w=ahooks.useLatest(C),_e=ahooks.useUpdate(),[ye,Qe]=React.useState([]),[Ee,et]=React.useState({}),tt=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Se=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ye(e),audio.dispatchResizeEvent(),tt())};index$1({container:z.current,target:document.querySelector(`[data-id=${(se=(le=c.current)==null?void 0:le.selectedRegion)==null?void 0:se.id}]`),clipping:H,zoom:k,zoomHandler:Se});const q=()=>{let e=w.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),K(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!b,resize:!b,color:"rgba(0, 0, 0, 0)"}))}),_e()},v=e=>{var r,t,n,i,s,m,p;const{id:a,loop:f=!0,playImmediately:g=!1,isLoopStatus:L}=e,A=!1;if(a){const P=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(P).forEach(([,E])=>{const{id:M}=E;a===M?E.select():E.cancelSelect()}),T({selectedRegion:{id:a,loop:A},selectedAttribute:(m=(s=(i=w.current)==null?void 0:i.find(E=>E.id===a))==null?void 0:s.attribute)!=null?m:""}),g&&((p=j(a))==null||p.play())}else T({selectedRegion:{}})},{combineInstance:rt}=index$2({waveRef:o,sortByStartRegions:ye,regionMap:Ee,updateRegion:h,removeRegion:D,generateRegions:q,setSelectedRegion:v}),{segmentInstance:nt,onRegionMouseMove:ot,segmentTimeTip:it}=index$3({waveRef:o,regionMap:Ee,updateRegion:h,removeRegion:D,generateRegions:q,setSelectedRegion:v}),xe={clipTextConfigurable:ne,clipAttributeList:ze,clipAttributeConfigurable:oe,clipConfigurable:Fe,secondaryAttributeConfigurable:Ue,subAttributeList:He,clipTextList:Ze};React.useEffect(()=>{var e;ae&&((e=lbUtils.i18n)==null||e.changeLanguage(ae))},[]),React.useEffect(()=>{T({selectedAttribute:""})},[oe]),React.useEffect(()=>{Z()},[U.selectedAttribute]),React.useEffect(()=>{q()},[U.attributeLockList]),ahooks.useDeepCompareEffect(()=>{T(xe),setTimeout(()=>{Re()})},[xe]),ahooks.useDeepCompareEffect(()=>{Qe(_.sortBy(C,["start"])),et(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{})),b&&q()},[C]),React.useEffect(()=>{v(O?{id:O,loop:!1,playImmediately:!0}:{})},[O]);const Re=()=>{var e,r;c.current.clipConfigurable?(!b&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),q()):((r=o.current)==null||r.disableDragSelection(),K()),Z()},Z=()=>{var e,r,t,n,i;let s="";c.current.clipConfigurable?s=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):s="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${s}`}))},j=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},Pe=()=>{var e,r;if(I){const t=((r=(e=ue==null?void 0:ue.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";fe(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(I).then(n=>{he(n)}):he(I)}},he=e=>{var r;e&&(de(!0),F(0),ve(0),(r=o==null?void 0:o.current)==null||r.load(e))},K=()=>{var e;(e=o.current)==null||e.clearRegions()},V=e=>{const r=j(e);r&&(X(!1),r==null||r.remove(),D==null||D(e),v({}))},{run:Ce}=ahooks.useThrottleFn(v,{wait:500});index$4({sortByStartRegions:ye,setSelectedRegion:v});const at=e=>{const{start:r,end:t}=be.current;return(r||t)&&e.update(be.current),e},lt=({action:e,id:r,eventDownTime:t})=>{var n,i;if(!c.current.clipConfigurable)return;r&&v({id:r});const s=j((r!=null?r:(n=c.current.selectedRegion)==null?void 0:n.id)||""),m=[];(e==="create"?w.current:(i=w.current)==null?void 0:i.filter(f=>f.id!==s.id)).forEach(f=>{const{start:g,end:L,attribute:A}=f;A===c.current.selectedAttribute&&[g,L].forEach(P=>{m.includes(P)||m.push(P)})});const a=audio.getCanMoveRange(m.sort((f,g)=>f-g),t);o.current.range=a},st=e=>{Z(),setTimeout(()=>{X(!1)});const r=at(e),{id:t,start:n,end:i}=r;v({id:t,playImmediately:!0});const s={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};h==null||h(s),_e()},ut=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Oe||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:C,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;F(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;ve(n),r(),u==null||u({duration:Math.round(n)}),de(!1),B(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",Y),lbAnnotation.EventBus.on("clearRegions",K),lbAnnotation.EventBus.on("removeRegionById",V),lbAnnotation.EventBus.on("setSelectedRegion",Ce),e.on("regions-eventDown",lt),Re()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{N(!0)}),e.on("pause",()=>{N(!1)}),e.on("finish",()=>{N(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{fe(!0),u==null||u({hasError:!0}),re==null||re()}),e.on("region-created",t=>{var n;const{id:i,start:s,end:m}=t;if(w.current.find(a=>a.id===i))return;const p={id:i,start:utils.decimalReserved(s,3),end:utils.decimalReserved(m,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})}),h==null||h(p)}),e.on("region-updated",(t,n)=>{var i,s,m,p,a,f,g,L,A,P;const E=n==null?void 0:n.action;T({combined:!1,segment:!1}),E==="resize"&&((s=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||s.setStyle({borderStyle:"solid"})),E==="drag"&&((p=(m=o==null?void 0:o.current)==null?void 0:m.cursor)==null||p.setStyle({borderColor:"transparent"}));const M={},J=[],Q={},St=(a=w.current)==null?void 0:a.filter(y=>y.id!==t.id),xt=(L=(g=(f=o.current)==null?void 0:f.regions)==null?void 0:g.list)!=null?L:{};St.forEach(y=>{var De,Ie;const{element:ee}=(De=xt[y.id])!=null?De:{},{start:ht,end:Ct}=y;if(ee){const{x:$e,width:wt}=((Ie=ee.getBoundingClientRect)==null?void 0:Ie.call(ee))||{},At=$e+wt;[$e,At].forEach((te,Tt)=>{J.includes(te)||(J.push(te),Q[te]=Tt===0?ht:Ct)})}});const{x:Me,width:Rt}=((P=(A=t.element).getBoundingClientRect)==null?void 0:P.call(A))||{},Pt=Me+Rt;J.forEach(y=>{Math.abs(audio.precisionMinus(y,Me))<5&&(M.start=Q[y]),Math.abs(audio.precisionMinus(y,Pt))<5&&(M.end=Q[y])}),Je(M),Ce({id:t.id}),X(!0)}),e.on("region-update-end",t=>{st(t)}),e.on("region-contextmenu",(t,n)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){V(t.id);return}v({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,i)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),c.current.combined){rt(t);return}if(c.current.segment){nt(t,i);return}v({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",ot),o.current=e},ct=W?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),we=e=>e?`${parseFloat((e/$*100).toFixed(4))}%`:"0%",Ae=we(S),dt=we(pe),R=()=>{if(!ce)return o==null?void 0:o.current},ft=()=>{var e;(e=R())==null||e.skipForward(PER_PROGRESS)},vt=()=>{var e;(e=R())==null||e.skipBackward(PER_PROGRESS)},B=()=>{var e;(e=R())==null||e.playPause(),v({})},Te=e=>{var r;switch(e.keyCode){case EKeyCode.Right:ft();break;case EKeyCode.Left:vt();break;case EKeyCode.Space:e.preventDefault(),B();break;case EKeyCode.Delete:if(!b){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&V(t)}break}},mt=e=>{Y(e)},qe=___default.default.throttle(mt,50);let G=!1;const je=()=>{G&&(B(),G=!1),document.removeEventListener("mousemove",qe),document.removeEventListener("mouseup",je)},pt=e=>{Y(e),W&&(G=!0,B()),document.addEventListener("mousemove",qe),document.addEventListener("mouseup",je)},gt=()=>{Pe()};React.useEffect(()=>(ut(),()=>{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 bt=e=>{var r,t,n;(r=R())==null||r.playPause(),(t=R())==null||t.setPlaybackRate(e),(n=R())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",Te),()=>{document.removeEventListener("keydown",Te)})),React.useEffect(()=>{v({}),Pe()},[I]);const Be=e=>{var r,t,n,i;if((o==null?void 0:o.current)&&(x==null?void 0:x.current)){const s=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,m=(n=x==null?void 0:x.current)==null?void 0:n.getBoundingClientRect();let a=(e.clientX-m.left)/(((i=x==null?void 0:x.current)==null?void 0:i.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},Y=e=>{var r;const t=Be(e);(r=o==null?void 0:o.current)==null||r.skip(t-me.current),F(t)},_t=e=>{Ge(Be(e))},yt=$?Math.max($-S,0):0,Et=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(Ne==="remark"||b),Le=React__default.default.createElement("div",{className:index_module.audioPlayer},Ve&&!We&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:gt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:j,clipping:H}),React__default.default.createElement(index$7,{container:z.current}),React__default.default.createElement(index$8,{segmentTimeTip:it}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:z},React__default.default.createElement("div",{id:"waveform",style:{width:`${k*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},ke&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:x,className:index_module.progress,onMouseDown:pt,onMouseMove:_t},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:Ae}},audio.formatTime(S)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:dt}},audio.formatTime(pe)),React__default.default.createElement(index$b,{playPercentage:Ae})),Et&&(ie==null?void 0:ie({currentTime:S,remainingTime:yt,audioPlayer:R()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:ct,onClick:()=>{B()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ce})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(S,"ss.SSS")} / -${audio.timeFormat($-S,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{bt(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{Se(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Le,C.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:ge,clipping:H,zoom:k,instance:j(r),isCheck:b}):null}),React__default.default.createElement(index$g.default,{footer:Xe})):Le},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";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),_=require("lodash"),antd=require("antd"),usePointCloudViews=require("./usePointCloudViews.js"),PointCloudContext=require("../PointCloudContext.js"),reactI18next=require("react-i18next"),ToolPointCloudBoxRenderHelper=require("../../../utils/ToolPointCloudBoxRenderHelper.js"),AnnotationDataUtils=require("../../../utils/AnnotationDataUtils.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,e,o)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,__spreadValues=(t,e)=>{for(var o in e||(e={}))__hasOwnProp.call(e,o)&&__defNormalProp(t,o,e[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(e))__propIsEnum.call(e,o)&&__defNormalProp(t,o,e[o]);return t},__spreadProps=(t,e)=>__defProps(t,__getOwnPropDescs(e));const useBoxes=({config:t,currentData:e})=>{const{selectedIDs:o,pointCloudBoxList:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),_=require("lodash"),antd=require("antd"),usePointCloudViews=require("./usePointCloudViews.js"),PointCloudContext=require("../PointCloudContext.js"),reactI18next=require("react-i18next"),ToolPointCloudBoxRenderHelper=require("../../../utils/ToolPointCloudBoxRenderHelper.js"),AnnotationDataUtils=require("../../../utils/AnnotationDataUtils.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,e,o)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,__spreadValues=(t,e)=>{for(var o in e||(e={}))__hasOwnProp.call(e,o)&&__defNormalProp(t,o,e[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(e))__propIsEnum.call(e,o)&&__defNormalProp(t,o,e[o]);return t},__spreadProps=(t,e)=>__defProps(t,__getOwnPropDescs(e));const updateBoxRects=(t,e=[],o=[])=>{const{rects:u=[]}=t,n=u.map(i=>{var p;return __spreadProps(__spreadValues({},i),{imageName:(p=AnnotationDataUtils.getNextPath({prePath:i.imageName,preMappingImgList:o,nextMappingImgList:e}))!=null?p:""})}).filter(i=>i.imageName!=="");return __spreadProps(__spreadValues({},t),{rects:n})},useBoxes=({config:t,currentData:e})=>{const{selectedIDs:o,pointCloudBoxList:u,displayPointCloudList:n,setPointCloudResult:i,syncAllViewPointCloudColor:p}=React.useContext(PointCloudContext.PointCloudContext),[d,g]=React.useState({copiedBoxes:[],copiedMappingImgList:[]}),{copiedBoxes:l}=d,{pointCloudBoxListUpdated:v}=usePointCloudViews.usePointCloudViews(),{t:c,i18n:C}=reactI18next.useTranslation(),I=r=>t.trackConfigurable!==!0?!1:u.some(a=>r.some(P=>P.trackID===a.trackID)),m=React.useMemo(()=>n.filter(r=>o.includes(r.id)),[o,n]),y=React.useCallback(()=>{var r;if(m.length>0){const a=(r=e==null?void 0:e.mappingImgList)!=null?r:[];g({copiedBoxes:___default.default.cloneDeep(m),copiedMappingImgList:a})}else g({copiedBoxes:[],copiedMappingImgList:[]}),antd.message.error(c("CopyEmptyInPointCloud"))},[o,n,C.language,e]),B=React.useCallback(()=>{var r,a;if(l.length===0){antd.message.error(c("PasteEmptyInPointCloud"));return}const P=I(l),O=(r=e==null?void 0:e.mappingImgList)!=null?r:[],D=(a=d==null?void 0:d.copiedMappingImgList)!=null?a:[],f=l.map(s=>updateBoxRects(s,O,D)),x=s=>{i(s),v==null||v(s),g({copiedBoxes:[],copiedMappingImgList:[]}),p(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.MultiPaste,s)};if(P)antd.Modal.confirm({title:c("HasDuplicateIDHeader"),content:c("HasDuplicateIDMsg"),onOk:()=>{const s=u.filter(L=>!f.find(w=>w.trackID===L.trackID)).concat(f);x(s)}});else{const s=[...n,...f];x(s)}},[l,n,C.language,e]);return{copySelectedBoxes:y,pasteSelectedBoxes:B,copiedBoxes:l,selectedBoxes:m}};exports.useBoxes=useBoxes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import i,{useState as b,useRef as H,useEffect as R}from"react";import{getWebPcm2WavBase64 as er}from"../audioAnnotate/utils/getWebPcm2Wac.js";import tr,{debounce as rr,sortBy as or}from"lodash";import{PauseOutlined as nr,CaretRightOutlined as ir}from"@ant-design/icons";import{cKeyCode as lr,cTool as sr,EventBus as E,TagUtils as ar}from"@labelbee/lb-annotation";import{i18n as Ve}from"@labelbee/lb-utils";import{Button as ur}from"antd";import cr from"../invalidPage/index.js";import dr from"../imageError/index.js";import{classnames as U}from"../../utils/index.js";import mr,{EPlayerType as pr}from"../videoPlayer/components/SpeedController/index.js";import fr from"@labelbee/wavesurfer";import vr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import gr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import br,{audioZoomInfo as Ge}from"./zoomSlider/index.js";import yr from"./labelDisplayToggle/index.js";import _r from"./clipRegion/index.js";import{useAudioClipStore as Er}from"../audioAnnotate/audioContext/index.js";import{useLatest as X,useUpdate as hr,useDeepCompareEffect as Ye,useThrottleFn as Sr}from"ahooks";import Pr from"./useAudioScroll/index.js";import y from"./index.module.scss.js";import{getAttributeColor as Rr,formatTime as Je,timeFormat as Qe,dispatchResizeEvent as Cr,precisionMinus as et,isDoubleClick as wr,getCanMoveRange as Tr}from"../../utils/audio.js";import Ar from"./progressDot/index.js";import xr from"./clipTip/index.js";import jr from"./useSwitchHotkey/index.js";import Dr from"./useAudioCombine/index.js";import Lr from"./useAudioSegment/index.js";import Mr from"./combineTip/index.js";import Ir from"./segmentTip/index.js";import kr from"../../views/MainView/toolFooter/index.js";import{decimalReserved as Z}from"../videoPlayer/utils.js";import{I18nextProvider as Br}from"react-i18next";var Or=Object.defineProperty,Nr=Object.defineProperties,Wr=Object.getOwnPropertyDescriptors,tt=Object.getOwnPropertySymbols,Fr=Object.prototype.hasOwnProperty,zr=Object.prototype.propertyIsEnumerable,rt=(p,u,d)=>u in p?Or(p,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):p[u]=d,de=(p,u)=>{for(var d in u||(u={}))Fr.call(u,d)&&rt(p,d,u[d]);if(tt)for(var d of tt(u))zr.call(u,d)&&rt(p,d,u[d]);return p},ot=(p,u)=>Nr(p,Wr(u));const{EToolName:nt}=sr,q=lr.default,it=.1,lt=i.createContext({count:0,isEdit:!1,toolName:nt.Empty,imgIndex:0}),st=({fileData:p={},onLoaded:u,context:d,invalid:at,height:ut,hideError:ct,onError:me,updateRegion:j,removeRegion:W,regions:D=[],activeToolPanel:dt,clipConfigurable:mt,clipTextConfigurable:pe,clipAttributeList:pt,clipAttributeConfigurable:fe,secondaryAttributeConfigurable:ft,subAttributeList:vt,isCheck:h,hoverRegionId:K,footer:gt,drawLayerSlot:ve,clipTextList:bt,lang:ge})=>{var be,ye;const{url:F,path:_e}=p,[V,G]=b(!1),[Ee,he]=b(!1),[C,yt]=b(0),[_t,Se]=b(!1),[z,Pe]=b(0),n=H(null),w=H(null),Re=H(C),Y=e=>{Re.current=e,yt(e)},[Ce,Et]=b(0),[$,ht]=b(1),J=H(null),[we,St]=b({}),{audioClipState:Q,setAudioClipState:I}=Er(),[ee,te]=b(!1),c=X(Q),Te=X(we),Ae=X(V),L=X(D),xe=hr(),[je,Pt]=b([]),[De,Rt]=b({}),Ct=rr(()=>{E.emit("audioZoom")},500),Le=e=>{e<Ge.min||e>Ge.max||(ht(e),Cr(),Ct())};Pr({container:J.current,target:document.querySelector(`[data-id=${(ye=(be=c.current)==null?void 0:be.selectedRegion)==null?void 0:ye.id}]`),clipping:ee,zoom:$,zoomHandler:Le});const k=()=>{let e=L.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),oe(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(ot(de({},t),{drag:!h,resize:!h,color:"rgba(0, 0, 0, 0)"}))}),xe()},f=e=>{var r,t,o,l,a,v,g;const{id:s,loop:m=!0,playImmediately:_=!1,isLoopStatus:M}=e,A=M?Ae.current:m;if(s){const x=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(x).forEach(([,P])=>{const{id:N}=P;s===N?P.select():P.cancelSelect()}),I({selectedRegion:{id:s,loop:A},selectedAttribute:(v=(a=(l=L.current)==null?void 0:l.find(P=>P.id===s))==null?void 0:a.attribute)!=null?v:""}),A&&_&&((g=B(s))==null||g.playLoop())}else I({selectedRegion:{}})},{combineInstance:wt}=Dr({waveRef:n,sortByStartRegions:je,regionMap:De,updateRegion:j,removeRegion:W,generateRegions:k,setSelectedRegion:f}),{segmentInstance:Tt,onRegionMouseMove:At,segmentTimeTip:xt}=Lr({waveRef:n,regionMap:De,updateRegion:j,removeRegion:W,generateRegions:k,setSelectedRegion:f}),Me={clipTextConfigurable:pe,clipAttributeList:pt,clipAttributeConfigurable:fe,clipConfigurable:mt,secondaryAttributeConfigurable:ft,subAttributeList:vt,clipTextList:bt};R(()=>{var e;ge&&((e=Ve)==null||e.changeLanguage(ge))},[]),R(()=>{I({selectedAttribute:""})},[fe]),R(()=>{re()},[Q.selectedAttribute]),R(()=>{k()},[Q.attributeLockList]),Ye(()=>{I(Me),setTimeout(()=>{Ie()})},[Me]),Ye(()=>{Pt(or(D,["start"])),Rt(D.reduce((e,r)=>{const{id:t}=r;return ot(de({},e),{[t]:r})},{})),h&&k()},[D]),R(()=>{if(K){const e=Ae.current;f({id:K,loop:e,playImmediately:!0})}else f({})},[K]);const Ie=()=>{var e,r;c.current.clipConfigurable?(!h&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),k()):((r=n.current)==null||r.disableDragSelection(),oe()),re()},re=()=>{var e,r,t,o,l;let a="";c.current.clipConfigurable?a=Rr(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):a="transparent",((t=(r=n==null?void 0:n.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((l=(o=n==null?void 0:n.current)==null?void 0:o.cursor)==null||l.setStyle({border:`2px dashed ${a}`}))},B=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},ke=()=>{var e,r;if(F){const t=((r=(e=_e==null?void 0:_e.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";Se(!1),t?er(F).then(o=>{Be(o)}):Be(F)}},Be=e=>{var r;e&&(he(!0),Y(0),Pe(0),(r=n==null?void 0:n.current)==null||r.load(e))},oe=()=>{var e;(e=n.current)==null||e.clearRegions()},ne=e=>{const r=B(e);r&&(te(!1),r==null||r.remove(),W==null||W(e),f({}))},{run:Oe}=Sr(f,{wait:500});jr({sortByStartRegions:je,setSelectedRegion:f});const jt=e=>{const{start:r,end:t}=Te.current;return(r||t)&&e.update(Te.current),e},Dt=({action:e,id:r,eventDownTime:t})=>{var o,l;if(!c.current.clipConfigurable)return;r&&f({id:r});const a=B((r!=null?r:(o=c.current.selectedRegion)==null?void 0:o.id)||""),v=[];(e==="create"?L.current:(l=L.current)==null?void 0:l.filter(m=>m.id!==a.id)).forEach(m=>{const{start:_,end:M,attribute:A}=m;A===c.current.selectedAttribute&&[_,M].forEach(x=>{v.includes(x)||v.push(x)})});const s=Tr(v.sort((m,_)=>m-_),t);n.current.range=s},Lt=e=>{re(),setTimeout(()=>{te(!1)});const r=jt(e),{id:t,start:o,end:l}=r;f({id:t,playImmediately:!0});const a={id:t,start:Z(o,3),end:Z(l,3)};j==null||j(a),xe()},Mt=()=>{const e=fr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:ut||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[vr.create({regions:D,dragSelection:{slop:5},canMove:!1}),gr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;Y(((t=n==null?void 0:n.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const o=((t=n==null?void 0:n.current)==null?void 0:t.getDuration())||0;Pe(o),r(),u==null||u({duration:Math.round(o)}),he(!1),O(),E.on("setCurrentTimeByPosition",le),E.on("clearRegions",oe),E.on("removeRegionById",ne),E.on("setSelectedRegion",Oe),e.on("regions-eventDown",Dt),Ie()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{G(!0)}),e.on("pause",()=>{G(!1)}),e.on("finish",()=>{G(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{Se(!0),u==null||u({hasError:!0}),me==null||me()}),e.on("region-created",t=>{var o;const{id:l,start:a,end:v}=t;if(L.current.find(s=>s.id===l))return;const g={id:l,start:Z(a,3),end:Z(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const s=ar.getDefaultResultByConfig((o=c.current.subAttributeList)!=null?o:[]);g.subAttribute=s!=null?s:{}}pe&&c.current.clipTextList.forEach((m,_)=>{_===0?Object.assign(g,{text:m==null?void 0:m.default}):Object.assign(g,{[m.key]:m==null?void 0:m.default})}),j==null||j(g)}),e.on("region-updated",(t,o)=>{var l,a,v,g,s,m,_,M,A,x;const P=o==null?void 0:o.action;I({combined:!1,segment:!1}),P==="resize"&&((a=(l=n==null?void 0:n.current)==null?void 0:l.cursor)==null||a.setStyle({borderStyle:"solid"})),P==="drag"&&((g=(v=n==null?void 0:n.current)==null?void 0:v.cursor)==null||g.setStyle({borderColor:"transparent"}));const N={},se=[],ae={},Xt=(s=L.current)==null?void 0:s.filter(S=>S.id!==t.id),Zt=(M=(_=(m=n.current)==null?void 0:m.regions)==null?void 0:_.list)!=null?M:{};Xt.forEach(S=>{var Ze,qe;const{element:ue}=(Ze=Zt[S.id])!=null?Ze:{},{start:Vt,end:Gt}=S;if(ue){const{x:Ke,width:Yt}=((qe=ue.getBoundingClientRect)==null?void 0:qe.call(ue))||{},Jt=Ke+Yt;[Ke,Jt].forEach((ce,Qt)=>{se.includes(ce)||(se.push(ce),ae[ce]=Qt===0?Vt:Gt)})}});const{x:Xe,width:qt}=((x=(A=t.element).getBoundingClientRect)==null?void 0:x.call(A))||{},Kt=Xe+qt;se.forEach(S=>{Math.abs(et(S,Xe))<5&&(N.start=ae[S]),Math.abs(et(S,Kt))<5&&(N.end=ae[S])}),St(N),Oe({id:t.id}),te(!0)}),e.on("region-update-end",t=>{Lt(t)}),e.on("region-contextmenu",(t,o)=>{if(!h){if(o.preventDefault(),o.stopPropagation(),wr(o)){ne(t.id);return}f({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,l)=>{if(!h){if(o.preventDefault(),o.stopPropagation(),c.current.combined){wt(t);return}if(c.current.segment){Tt(t,l);return}f({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",At),n.current=e},It=V?i.createElement(nr,null):i.createElement(ir,null),Ne=e=>e?`${parseFloat((e/z*100).toFixed(4))}%`:"0%",We=Ne(C),kt=Ne(Ce),T=()=>{if(!Ee)return n==null?void 0:n.current},Bt=()=>{var e;(e=T())==null||e.skipForward(it)},Ot=()=>{var e;(e=T())==null||e.skipBackward(it)},O=()=>{var e;(e=T())==null||e.playPause(),f({})},Fe=e=>{var r;switch(e.keyCode){case q.Right:Bt();break;case q.Left:Ot();break;case q.Space:e.preventDefault(),O();break;case q.Delete:if(!h){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&ne(t)}break}},Nt=e=>{le(e)},ze=tr.throttle(Nt,50);let ie=!1;const $e=()=>{ie&&(O(),ie=!1),document.removeEventListener("mousemove",ze),document.removeEventListener("mouseup",$e)},Wt=e=>{le(e),V&&(ie=!0,O()),document.addEventListener("mousemove",ze),document.addEventListener("mouseup",$e)},Ft=()=>{ke()};R(()=>(Mt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,E.unbindAll("setCurrentTimeByPosition"),E.unbindAll("clearRegions"),E.unbindAll("removeRegionById"),E.unbindAll("setSelectedRegion")}),[]);const zt=e=>{var r,t,o;(r=T())==null||r.playPause(),(t=T())==null||t.setPlaybackRate(e),(o=T())==null||o.playPause()};R(()=>(document.addEventListener("keydown",Fe),()=>{document.removeEventListener("keydown",Fe)})),R(()=>{f({}),ke()},[F]);const He=e=>{var r,t,o,l;if((n==null?void 0:n.current)&&(w==null?void 0:w.current)){const a=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,v=(o=w==null?void 0:w.current)==null?void 0:o.getBoundingClientRect();let s=(e.clientX-v.left)/(((l=w==null?void 0:w.current)==null?void 0:l.clientWidth)||0)*a;return s>a&&(s=a),s}return 0},le=e=>{var r;const t=He(e);(r=n==null?void 0:n.current)==null||r.skip(t-Re.current),Y(t)},$t=e=>{Et(He(e))},Ht=z?Math.max(z-C,0):0,Ut=(d==null?void 0:d.toolName)!==nt.Empty&&(d==null?void 0:d.isEdit)!==!0&&(dt==="remark"||h),Ue=i.createElement("div",{className:y.audioPlayer},_t&&!ct&&i.createElement(dr,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Ft,backgroundColor:"#ffffffbb"}),i.createElement(xr,{getRegionInstanceById:B,clipping:ee}),i.createElement(Mr,{container:J.current}),i.createElement(Ir,{segmentTimeTip:xt}),i.createElement("div",{className:y.waveformContainer,ref:J},i.createElement("div",{id:"waveform",style:{width:`${$*100}%`},className:U({[y.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},at&&i.createElement(cr,{isAudio:!0}),i.createElement("div",{ref:w,className:y.progress,onMouseDown:Wt,onMouseMove:$t},i.createElement("div",{className:U({[y.radioTooltip]:!0}),style:{left:We}},Je(C)),i.createElement("div",{className:U({[y.radioTooltip]:!0,[y.mouseTooltip]:!0}),style:{left:kt}},Je(Ce)),i.createElement(Ar,{playPercentage:We})),Ut&&(ve==null?void 0:ve({currentTime:C,remainingTime:Ht,audioPlayer:T()})))),i.createElement("div",{className:y.controlBar},i.createElement(ur,{type:"link",icon:It,onClick:()=>{O()},className:U({[y.playButton]:!0,[y.playButtonDisabled]:Ee})}),i.createElement("span",{className:y.time},`${Qe(C,"ss.SSS")} / -${Qe(z-C,"ss.SSS")}`),i.createElement(mr,{playerType:pr.Audio,onChange:e=>{zt(e)}}),i.createElement(br,{onChange:e=>{Le(e)},zoom:$}),i.createElement(yr,{EventBus:E})));return d?i.createElement(lt.Provider,{value:d},Ue,D.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?i.createElement(_r,{el:t,key:r,region:e,edgeAdsorption:we,clipping:ee,zoom:$,instance:B(r),isCheck:h}):null}),i.createElement(kr,{footer:gt})):Ue},$r=p=>i.createElement(Br,{i18n:Ve},i.createElement(st,de({},p)));export{st as AudioPlayer,lt as AudioPlayerContext,$r as WrapAudioPlayer};
|
|
1
|
+
import i,{useState as b,useRef as H,useEffect as R}from"react";import{getWebPcm2WavBase64 as Qt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import er,{debounce as tr,sortBy as rr}from"lodash";import{PauseOutlined as or,CaretRightOutlined as nr}from"@ant-design/icons";import{cKeyCode as ir,cTool as lr,EventBus as E,TagUtils as sr}from"@labelbee/lb-annotation";import{i18n as Ke}from"@labelbee/lb-utils";import{Button as ar}from"antd";import ur from"../invalidPage/index.js";import cr from"../imageError/index.js";import{classnames as U}from"../../utils/index.js";import dr,{EPlayerType as mr}from"../videoPlayer/components/SpeedController/index.js";import fr from"@labelbee/wavesurfer";import pr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import vr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import gr,{audioZoomInfo as Ve}from"./zoomSlider/index.js";import br from"./labelDisplayToggle/index.js";import yr from"./clipRegion/index.js";import{useAudioClipStore as _r}from"../audioAnnotate/audioContext/index.js";import{useLatest as X,useUpdate as Er,useDeepCompareEffect as Ge,useThrottleFn as hr}from"ahooks";import Sr from"./useAudioScroll/index.js";import y from"./index.module.scss.js";import{getAttributeColor as Pr,formatTime as Ye,timeFormat as Je,dispatchResizeEvent as Rr,precisionMinus as Qe,isDoubleClick as Cr,getCanMoveRange as wr}from"../../utils/audio.js";import Tr from"./progressDot/index.js";import Ar from"./clipTip/index.js";import xr from"./useSwitchHotkey/index.js";import jr from"./useAudioCombine/index.js";import Dr from"./useAudioSegment/index.js";import Lr from"./combineTip/index.js";import Mr from"./segmentTip/index.js";import Ir from"../../views/MainView/toolFooter/index.js";import{decimalReserved as Z}from"../videoPlayer/utils.js";import{I18nextProvider as kr}from"react-i18next";var Br=Object.defineProperty,Or=Object.defineProperties,Nr=Object.getOwnPropertyDescriptors,et=Object.getOwnPropertySymbols,Wr=Object.prototype.hasOwnProperty,Fr=Object.prototype.propertyIsEnumerable,tt=(f,u,d)=>u in f?Br(f,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):f[u]=d,de=(f,u)=>{for(var d in u||(u={}))Wr.call(u,d)&&tt(f,d,u[d]);if(et)for(var d of et(u))Fr.call(u,d)&&tt(f,d,u[d]);return f},rt=(f,u)=>Or(f,Nr(u));const{EToolName:ot}=lr,q=ir.default,nt=.1,it=i.createContext({count:0,isEdit:!1,toolName:ot.Empty,imgIndex:0}),lt=({fileData:f={},onLoaded:u,context:d,invalid:st,height:at,hideError:ut,onError:me,updateRegion:x,removeRegion:W,regions:j=[],activeToolPanel:ct,clipConfigurable:dt,clipTextConfigurable:fe,clipAttributeList:mt,clipAttributeConfigurable:pe,secondaryAttributeConfigurable:ft,subAttributeList:pt,isCheck:h,hoverRegionId:K,footer:vt,drawLayerSlot:ve,clipTextList:gt,lang:ge})=>{var be,ye;const{url:F,path:_e}=f,[V,G]=b(!1),[Ee,he]=b(!1),[C,bt]=b(0),[yt,Se]=b(!1),[z,Pe]=b(0),n=H(null),w=H(null),Re=H(C),Y=e=>{Re.current=e,bt(e)},[Ce,_t]=b(0),[$,Et]=b(1),J=H(null),[we,ht]=b({}),{audioClipState:Q,setAudioClipState:M}=_r(),[ee,te]=b(!1),c=X(Q),Te=X(we);X(V);const D=X(j),Ae=Er(),[xe,St]=b([]),[je,Pt]=b({}),Rt=tr(()=>{E.emit("audioZoom")},500),De=e=>{e<Ve.min||e>Ve.max||(Et(e),Rr(),Rt())};Sr({container:J.current,target:document.querySelector(`[data-id=${(ye=(be=c.current)==null?void 0:be.selectedRegion)==null?void 0:ye.id}]`),clipping:ee,zoom:$,zoomHandler:De});const I=()=>{let e=D.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),oe(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(rt(de({},t),{drag:!h,resize:!h,color:"rgba(0, 0, 0, 0)"}))}),Ae()},p=e=>{var r,t,o,l,a,v,g;const{id:s,loop:m=!0,playImmediately:_=!1,isLoopStatus:O}=e,L=!1;if(s){const A=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(A).forEach(([,P])=>{const{id:N}=P;s===N?P.select():P.cancelSelect()}),M({selectedRegion:{id:s,loop:L},selectedAttribute:(v=(a=(l=D.current)==null?void 0:l.find(P=>P.id===s))==null?void 0:a.attribute)!=null?v:""}),_&&((g=k(s))==null||g.play())}else M({selectedRegion:{}})},{combineInstance:Ct}=jr({waveRef:n,sortByStartRegions:xe,regionMap:je,updateRegion:x,removeRegion:W,generateRegions:I,setSelectedRegion:p}),{segmentInstance:wt,onRegionMouseMove:Tt,segmentTimeTip:At}=Dr({waveRef:n,regionMap:je,updateRegion:x,removeRegion:W,generateRegions:I,setSelectedRegion:p}),Le={clipTextConfigurable:fe,clipAttributeList:mt,clipAttributeConfigurable:pe,clipConfigurable:dt,secondaryAttributeConfigurable:ft,subAttributeList:pt,clipTextList:gt};R(()=>{var e;ge&&((e=Ke)==null||e.changeLanguage(ge))},[]),R(()=>{M({selectedAttribute:""})},[pe]),R(()=>{re()},[Q.selectedAttribute]),R(()=>{I()},[Q.attributeLockList]),Ge(()=>{M(Le),setTimeout(()=>{Me()})},[Le]),Ge(()=>{St(rr(j,["start"])),Pt(j.reduce((e,r)=>{const{id:t}=r;return rt(de({},e),{[t]:r})},{})),h&&I()},[j]),R(()=>{p(K?{id:K,loop:!1,playImmediately:!0}:{})},[K]);const Me=()=>{var e,r;c.current.clipConfigurable?(!h&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),I()):((r=n.current)==null||r.disableDragSelection(),oe()),re()},re=()=>{var e,r,t,o,l;let a="";c.current.clipConfigurable?a=Pr(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):a="transparent",((t=(r=n==null?void 0:n.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((l=(o=n==null?void 0:n.current)==null?void 0:o.cursor)==null||l.setStyle({border:`2px dashed ${a}`}))},k=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},Ie=()=>{var e,r;if(F){const t=((r=(e=_e==null?void 0:_e.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";Se(!1),t?Qt(F).then(o=>{ke(o)}):ke(F)}},ke=e=>{var r;e&&(he(!0),Y(0),Pe(0),(r=n==null?void 0:n.current)==null||r.load(e))},oe=()=>{var e;(e=n.current)==null||e.clearRegions()},ne=e=>{const r=k(e);r&&(te(!1),r==null||r.remove(),W==null||W(e),p({}))},{run:Be}=hr(p,{wait:500});xr({sortByStartRegions:xe,setSelectedRegion:p});const xt=e=>{const{start:r,end:t}=Te.current;return(r||t)&&e.update(Te.current),e},jt=({action:e,id:r,eventDownTime:t})=>{var o,l;if(!c.current.clipConfigurable)return;r&&p({id:r});const a=k((r!=null?r:(o=c.current.selectedRegion)==null?void 0:o.id)||""),v=[];(e==="create"?D.current:(l=D.current)==null?void 0:l.filter(m=>m.id!==a.id)).forEach(m=>{const{start:_,end:O,attribute:L}=m;L===c.current.selectedAttribute&&[_,O].forEach(A=>{v.includes(A)||v.push(A)})});const s=wr(v.sort((m,_)=>m-_),t);n.current.range=s},Dt=e=>{re(),setTimeout(()=>{te(!1)});const r=xt(e),{id:t,start:o,end:l}=r;p({id:t,playImmediately:!0});const a={id:t,start:Z(o,3),end:Z(l,3)};x==null||x(a),Ae()},Lt=()=>{const e=fr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:at||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[pr.create({regions:j,dragSelection:{slop:5},canMove:!1}),vr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;Y(((t=n==null?void 0:n.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const o=((t=n==null?void 0:n.current)==null?void 0:t.getDuration())||0;Pe(o),r(),u==null||u({duration:Math.round(o)}),he(!1),B(),E.on("setCurrentTimeByPosition",le),E.on("clearRegions",oe),E.on("removeRegionById",ne),E.on("setSelectedRegion",Be),e.on("regions-eventDown",jt),Me()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{G(!0)}),e.on("pause",()=>{G(!1)}),e.on("finish",()=>{G(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{Se(!0),u==null||u({hasError:!0}),me==null||me()}),e.on("region-created",t=>{var o;const{id:l,start:a,end:v}=t;if(D.current.find(s=>s.id===l))return;const g={id:l,start:Z(a,3),end:Z(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const s=sr.getDefaultResultByConfig((o=c.current.subAttributeList)!=null?o:[]);g.subAttribute=s!=null?s:{}}fe&&c.current.clipTextList.forEach((m,_)=>{_===0?Object.assign(g,{text:m==null?void 0:m.default}):Object.assign(g,{[m.key]:m==null?void 0:m.default})}),x==null||x(g)}),e.on("region-updated",(t,o)=>{var l,a,v,g,s,m,_,O,L,A;const P=o==null?void 0:o.action;M({combined:!1,segment:!1}),P==="resize"&&((a=(l=n==null?void 0:n.current)==null?void 0:l.cursor)==null||a.setStyle({borderStyle:"solid"})),P==="drag"&&((g=(v=n==null?void 0:n.current)==null?void 0:v.cursor)==null||g.setStyle({borderColor:"transparent"}));const N={},se=[],ae={},Ut=(s=D.current)==null?void 0:s.filter(S=>S.id!==t.id),Xt=(O=(_=(m=n.current)==null?void 0:m.regions)==null?void 0:_.list)!=null?O:{};Ut.forEach(S=>{var Xe,Ze;const{element:ue}=(Xe=Xt[S.id])!=null?Xe:{},{start:Kt,end:Vt}=S;if(ue){const{x:qe,width:Gt}=((Ze=ue.getBoundingClientRect)==null?void 0:Ze.call(ue))||{},Yt=qe+Gt;[qe,Yt].forEach((ce,Jt)=>{se.includes(ce)||(se.push(ce),ae[ce]=Jt===0?Kt:Vt)})}});const{x:Ue,width:Zt}=((A=(L=t.element).getBoundingClientRect)==null?void 0:A.call(L))||{},qt=Ue+Zt;se.forEach(S=>{Math.abs(Qe(S,Ue))<5&&(N.start=ae[S]),Math.abs(Qe(S,qt))<5&&(N.end=ae[S])}),ht(N),Be({id:t.id}),te(!0)}),e.on("region-update-end",t=>{Dt(t)}),e.on("region-contextmenu",(t,o)=>{if(!h){if(o.preventDefault(),o.stopPropagation(),Cr(o)){ne(t.id);return}p({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,l)=>{if(!h){if(o.preventDefault(),o.stopPropagation(),c.current.combined){Ct(t);return}if(c.current.segment){wt(t,l);return}p({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Tt),n.current=e},Mt=V?i.createElement(or,null):i.createElement(nr,null),Oe=e=>e?`${parseFloat((e/z*100).toFixed(4))}%`:"0%",Ne=Oe(C),It=Oe(Ce),T=()=>{if(!Ee)return n==null?void 0:n.current},kt=()=>{var e;(e=T())==null||e.skipForward(nt)},Bt=()=>{var e;(e=T())==null||e.skipBackward(nt)},B=()=>{var e;(e=T())==null||e.playPause(),p({})},We=e=>{var r;switch(e.keyCode){case q.Right:kt();break;case q.Left:Bt();break;case q.Space:e.preventDefault(),B();break;case q.Delete:if(!h){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&ne(t)}break}},Ot=e=>{le(e)},Fe=er.throttle(Ot,50);let ie=!1;const ze=()=>{ie&&(B(),ie=!1),document.removeEventListener("mousemove",Fe),document.removeEventListener("mouseup",ze)},Nt=e=>{le(e),V&&(ie=!0,B()),document.addEventListener("mousemove",Fe),document.addEventListener("mouseup",ze)},Wt=()=>{Ie()};R(()=>(Lt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,E.unbindAll("setCurrentTimeByPosition"),E.unbindAll("clearRegions"),E.unbindAll("removeRegionById"),E.unbindAll("setSelectedRegion")}),[]);const Ft=e=>{var r,t,o;(r=T())==null||r.playPause(),(t=T())==null||t.setPlaybackRate(e),(o=T())==null||o.playPause()};R(()=>(document.addEventListener("keydown",We),()=>{document.removeEventListener("keydown",We)})),R(()=>{p({}),Ie()},[F]);const $e=e=>{var r,t,o,l;if((n==null?void 0:n.current)&&(w==null?void 0:w.current)){const a=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,v=(o=w==null?void 0:w.current)==null?void 0:o.getBoundingClientRect();let s=(e.clientX-v.left)/(((l=w==null?void 0:w.current)==null?void 0:l.clientWidth)||0)*a;return s>a&&(s=a),s}return 0},le=e=>{var r;const t=$e(e);(r=n==null?void 0:n.current)==null||r.skip(t-Re.current),Y(t)},zt=e=>{_t($e(e))},$t=z?Math.max(z-C,0):0,Ht=(d==null?void 0:d.toolName)!==ot.Empty&&(d==null?void 0:d.isEdit)!==!0&&(ct==="remark"||h),He=i.createElement("div",{className:y.audioPlayer},yt&&!ut&&i.createElement(cr,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Wt,backgroundColor:"#ffffffbb"}),i.createElement(Ar,{getRegionInstanceById:k,clipping:ee}),i.createElement(Lr,{container:J.current}),i.createElement(Mr,{segmentTimeTip:At}),i.createElement("div",{className:y.waveformContainer,ref:J},i.createElement("div",{id:"waveform",style:{width:`${$*100}%`},className:U({[y.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},st&&i.createElement(ur,{isAudio:!0}),i.createElement("div",{ref:w,className:y.progress,onMouseDown:Nt,onMouseMove:zt},i.createElement("div",{className:U({[y.radioTooltip]:!0}),style:{left:Ne}},Ye(C)),i.createElement("div",{className:U({[y.radioTooltip]:!0,[y.mouseTooltip]:!0}),style:{left:It}},Ye(Ce)),i.createElement(Tr,{playPercentage:Ne})),Ht&&(ve==null?void 0:ve({currentTime:C,remainingTime:$t,audioPlayer:T()})))),i.createElement("div",{className:y.controlBar},i.createElement(ar,{type:"link",icon:Mt,onClick:()=>{B()},className:U({[y.playButton]:!0,[y.playButtonDisabled]:Ee})}),i.createElement("span",{className:y.time},`${Je(C,"ss.SSS")} / -${Je(z-C,"ss.SSS")}`),i.createElement(dr,{playerType:mr.Audio,onChange:e=>{Ft(e)}}),i.createElement(gr,{onChange:e=>{De(e)},zoom:$}),i.createElement(br,{EventBus:E})));return d?i.createElement(it.Provider,{value:d},He,j.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?i.createElement(yr,{el:t,key:r,region:e,edgeAdsorption:we,clipping:ee,zoom:$,instance:k(r),isCheck:h}):null}),i.createElement(Ir,{footer:vt})):He},zr=f=>i.createElement(kr,{i18n:Ke},i.createElement(lt,de({},f)));export{lt as AudioPlayer,it as AudioPlayerContext,zr as WrapAudioPlayer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useContext as
|
|
1
|
+
import{useContext as k,useState as E,useMemo as N,useCallback as x}from"react";import S from"lodash";import{message as v,Modal as H}from"antd";import{usePointCloudViews as V}from"./usePointCloudViews.js";import{PointCloudContext as A}from"../PointCloudContext.js";import{useTranslation as T}from"react-i18next";import{EPointCloudBoxRenderTrigger as U}from"../../../utils/ToolPointCloudBoxRenderHelper.js";import q from"../../../utils/AnnotationDataUtils.js";var z=Object.defineProperty,F=Object.defineProperties,G=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable,B=(o,e,t)=>e in o?z(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,O=(o,e)=>{for(var t in e||(e={}))J.call(e,t)&&B(o,t,e[t]);if(y)for(var t of y(e))K.call(e,t)&&B(o,t,e[t]);return o},D=(o,e)=>F(o,G(e));const Q=(o,e=[],t=[])=>{const{rects:l=[]}=o,n=l.map(i=>{var c;return D(O({},i),{imageName:(c=q.getNextPath({prePath:i.imageName,preMappingImgList:t,nextMappingImgList:e}))!=null?c:""})}).filter(i=>i.imageName!=="");return D(O({},o),{rects:n})},W=({config:o,currentData:e})=>{const{selectedIDs:t,pointCloudBoxList:l,displayPointCloudList:n,setPointCloudResult:i,syncAllViewPointCloudColor:c}=k(A),[d,m]=E({copiedBoxes:[],copiedMappingImgList:[]}),{copiedBoxes:p}=d,{pointCloudBoxListUpdated:I}=V(),{t:u,i18n:_}=T(),L=s=>o.trackConfigurable!==!0?!1:l.some(a=>s.some(f=>f.trackID===a.trackID)),g=N(()=>n.filter(s=>t.includes(s.id)),[t,n]),w=x(()=>{var s;if(g.length>0){const a=(s=e==null?void 0:e.mappingImgList)!=null?s:[];m({copiedBoxes:S.cloneDeep(g),copiedMappingImgList:a})}else m({copiedBoxes:[],copiedMappingImgList:[]}),v.error(u("CopyEmptyInPointCloud"))},[t,n,_.language,e]),M=x(()=>{var s,a;if(p.length===0){v.error(u("PasteEmptyInPointCloud"));return}const f=L(p),h=(s=e==null?void 0:e.mappingImgList)!=null?s:[],j=(a=d==null?void 0:d.copiedMappingImgList)!=null?a:[],P=p.map(r=>Q(r,h,j)),C=r=>{i(r),I==null||I(r),m({copiedBoxes:[],copiedMappingImgList:[]}),c(U.MultiPaste,r)};if(f)H.confirm({title:u("HasDuplicateIDHeader"),content:u("HasDuplicateIDMsg"),onOk:()=>{const r=l.filter(R=>!P.find(b=>b.trackID===R.trackID)).concat(P);C(r)}});else{const r=[...n,...P];C(r)}},[p,n,_.language,e]);return{copySelectedBoxes:w,pasteSelectedBoxes:M,copiedBoxes:p,selectedBoxes:g}};export{W as useBoxes};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@labelbee/lb-components",
|
|
3
|
-
"version": "1.23.0-alpha.
|
|
3
|
+
"version": "1.23.0-alpha.95",
|
|
4
4
|
"description": "Provide a complete library of annotation components",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"es": "./es/index.js",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@ant-design/icons": "^4.6.2",
|
|
46
|
-
"@labelbee/lb-annotation": "1.27.0-alpha.
|
|
46
|
+
"@labelbee/lb-annotation": "1.27.0-alpha.48",
|
|
47
47
|
"@labelbee/lb-utils": "1.19.0-alpha.20",
|
|
48
48
|
"@labelbee/wavesurfer": "1.0.0",
|
|
49
49
|
"@types/react-dom": "^18.2.7",
|